]> WPIA git - cassiopeia.git/blobdiff - src/config.cpp
add: signing of OCSP certificates
[cassiopeia.git] / src / config.cpp
index a4d32848ecb7de4e3e4609adc5a83e997d927d47..a58cc82878acabf16190dcc212bb27e2a617b8f3 100644 (file)
@@ -53,8 +53,8 @@ std::shared_ptr<std::unordered_map<std::string, std::string>> parseConf( std::st
 int parseProfiles() {
     CAs = std::unordered_map<std::string, std::shared_ptr<CAConfig>>();
 
-    DIRdp;
-    struct direntep;
+    DIR *dp;
+    struct dirent *ep;
     dp = opendir( "profiles" );
 
     if( dp == NULL ) {
@@ -93,16 +93,20 @@ int parseProfiles() {
         prof.ku = map->at( "ku" );
         prof.maxValidity = std::stoi( map->at( "days" ) ) * /* DAYS */24 * 60 * 60;
 
-        std::string cas = map->at( "ca" );
 
-        DIR* dir;
-        struct dirent* ent;
+        DIR *dir;
+        struct dirent *ent;
+
+        if( profileName == "0100-ocsp" ) {
+            //This profile does not have a specific CA. The concrete CA has to be set in each request.
+        } else if( ( dir = opendir( "ca" ) ) != NULL ) {
+            std::string cas = map->at( "ca" );
+            std::string toFind = cas + "_";
 
-        if( ( dir = opendir( "ca" ) ) != NULL ) {
             while( ( ent = readdir( dir ) ) != NULL ) {
                 std::string caName = std::string( ent->d_name );
 
-                if( caName.find( cas ) != 0 ) {
+                if( caName.find( toFind ) != 0 ) {
                     continue;
                 }