r3364 - trunk/libmcrypto/source

erik at minisip.org erik at minisip.org
Mon Aug 13 13:18:56 CEST 2007


Author: erik
Date: 2007-08-13 13:18:56 +0200 (Mon, 13 Aug 2007)
New Revision: 3364

Modified:
   trunk/libmcrypto/source/CertificateFinder.cxx
Log:

 * Added SRV lookup or LDAP databases to the UCD alg.



Modified: trunk/libmcrypto/source/CertificateFinder.cxx
===================================================================
--- trunk/libmcrypto/source/CertificateFinder.cxx	2007-08-13 10:58:01 UTC (rev 3363)
+++ trunk/libmcrypto/source/CertificateFinder.cxx	2007-08-13 11:18:56 UTC (rev 3364)
@@ -18,7 +18,7 @@
 
 /* Copyright (C) 2007
  *
- * Authors: Mikael Svensson
+ * Authors: Mikael Svensson, Erik Eliasson
 */
 
 #include <config.h>
@@ -28,6 +28,7 @@
 #include <libmnetutil/LdapUrl.h>
 #include <libmnetutil/LdapEntry.h>
 #include <libmnetutil/LdapCredentials.h>
+#include <libmnetutil/NetworkFunctions.h>
 
 #include<libmutil/SipUri.h>
 #include <iostream>
@@ -124,13 +125,20 @@
 	Try to find DNS SRV records specifying LDAP servers in the domain of the issuer.
 	*/
 	if (effort == 2){
-		//ret = ....
-		ret = std::vector<MRef<Certificate*> >();
-		std::cerr << "    Found certificates using SRV records: " << ret.size() << std::endl;
+		std::string domain = getSubjectDomain(curCert);
+		uint16_t port;
+		std::string server=NetworkFunctions::getHostHandlingService("_ldap._tcp",   
+				domain,port);
+
+		server = "ldap://"+server;
+		if (port!=0)
+			server = server+":"+itoa(port);
+
+		LdapUrl url(server);
+		ret = downloadFromLdap(url, subjectUri, issuer, typeCrossCert);
+		std::cerr << "    Found certificates using SRV: " << ret.size() << std::endl;
 		if (!ret.empty()) {
 			return ret;
-		} else {
-			effort = 3;
 		}
 	}
 



More information about the Minisip-devel mailing list