#include "simpleOpensslSigner.h"
#include <iostream>
-#include <fstream>
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/x509v3.h>
#include "X509.h"
+#include "util.h"
extern std::vector<Profile> profiles;
}
std::shared_ptr<BIGNUM> SimpleOpensslSigner::nextSerial( uint16_t profile ) {
- std::ifstream serialif( "serial" );
- std::string res;
- serialif >> res;
- serialif.close();
+ std::string res = readFile( "serial" );
BIGNUM* bn = 0;
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<char> serStr = std::shared_ptr<char>(
+ BN_bn2hex( serial.get() ),
+ []( char* ref ) {
+ OPENSSL_free( ref );
+ } );
+ writeFile( "serial", serStr.get() );
return std::shared_ptr<BIGNUM>( BN_bin2bn( data.get(), len + 4 + 16 , 0 ), BN_free );
}
if( cert->csr_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 );
}