X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fcrypto%2FsimpleOpensslSigner.cpp;h=fa51a9e1ccd85c5c086a323b439c9779d9ea3338;hb=2fc4b5f8d5400f6ebd284a0e6fbaad23a345b585;hp=98c5f1fd0b83ee4ad80d90ae3d67ca7801b553d7;hpb=1867e1ad94f4549869b23a68851caf34cfbf8e8b;p=cassiopeia.git diff --git a/src/crypto/simpleOpensslSigner.cpp b/src/crypto/simpleOpensslSigner.cpp index 98c5f1f..fa51a9e 100644 --- a/src/crypto/simpleOpensslSigner.cpp +++ b/src/crypto/simpleOpensslSigner.cpp @@ -35,7 +35,7 @@ std::pair, std::string> SimpleOpensslSigner::nextSerial( if( res == "" ) { bn = BN_new(); - if( !bn ) { + if( !bn || !BN_hex2bn( &bn, "1" )) { throw "Initing serial failed"; } } else { @@ -122,7 +122,10 @@ std::shared_ptr SimpleOpensslSigner::sign( std::shared_ptr a : cert->AVAs ) { logger::notef( "INFO: Trying to add RDN: %s: %s", a->name, a->value ); - + if( a-> value == "") { + logger::notef( "INFO: Removing empty RDN: %s", a->name); + continue; + } if( a->name == "CN" ) { c.addRDN( NID_commonName, a->value ); } else if( a->name == "EMAIL" ) { @@ -254,16 +257,20 @@ std::shared_ptr SimpleOpensslSigner::sign( std::shared_ptr, std::string> SimpleOpensslSigner::revoke( std::shared_ptr ca, std::vector serials ) { + logger::note( "revoking" ); std::string crlpath = ca->path + "/ca.crl"; auto crl = std::make_shared( crlpath ); std::string date = ""; + logger::note( "adding serials" ); for( std::string serial : serials ) { date = crl->revoke( serial, "" ); } + logger::note( "signing CRL" ); crl->sign( ca ); writeFile( crlpath, crl->toString() ); + logger::note( "wrote CRL" ); return std::pair, std::string>( crl, date ); }