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