X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2FsimpleOpensslSigner.cpp;h=0096d5ec0457f67ca4f42058fbb8778124753254;hb=2c79061a72b54efdcac10b6beca62bf53f7383c8;hp=eb7d8b9e720232989b8a60c5b0bfc792a50d2fe0;hpb=b9093a80fe9374f5750ebe40b3c6490f62561da6;p=cassiopeia.git diff --git a/src/simpleOpensslSigner.cpp b/src/simpleOpensslSigner.cpp index eb7d8b9..0096d5e 100644 --- a/src/simpleOpensslSigner.cpp +++ b/src/simpleOpensslSigner.cpp @@ -1,7 +1,6 @@ #include "simpleOpensslSigner.h" #include -#include #include #include @@ -11,6 +10,7 @@ #include #include "X509.h" +#include "util.h" extern std::vector profiles; @@ -74,10 +74,7 @@ SimpleOpensslSigner::~SimpleOpensslSigner() { } std::shared_ptr SimpleOpensslSigner::nextSerial( uint16_t profile ) { - std::ifstream serialif( "serial" ); - std::string res; - serialif >> res; - serialif.close(); + std::string res = readFile( "serial" ); BIGNUM* bn = 0; @@ -108,11 +105,12 @@ std::shared_ptr SimpleOpensslSigner::nextSerial( uint16_t profile ) { throw "Big number math failed while calcing serials."; } - char* serStr = BN_bn2hex( serial.get() ); - std::ofstream serialf( "serial" ); - serialf << serStr; - serialf.close(); - OPENSSL_free( serStr ); + std::shared_ptr serStr = std::shared_ptr( + BN_bn2hex( serial.get() ), + []( char* ref ) { + OPENSSL_free( ref ); + } ); + writeFile( "serial", serStr.get() ); return std::shared_ptr( BN_bin2bn( data.get(), len + 4 + 16 , 0 ), BN_free ); } @@ -127,7 +125,7 @@ std::shared_ptr SimpleOpensslSigner::sign( std::shared_ptrcsr_type == "SPKAC" ) { req = X509Req::parseSPKAC( cert->csr_content ); } else if( cert->csr_type == "CSR" ) { - req = X509Req::parse( cert->csr_content ); + req = X509Req::parseCSR( cert->csr_content ); } else { throw "Error, unknown REQ rype " + ( cert->csr_type ); }