| | |
| | | using namespace std; |
| | | |
| | | LicenseSigner::LicenseSigner() { |
| | | |
| | | os_initialize(); |
| | | } |
| | | |
| | | LicenseSigner::LicenseSigner(const std::string& alternatePrimaryKey) { |
| | | os_initialize(); |
| | | } |
| | | |
| | | string LicenseSigner::Opensslb64Encode(size_t slen, unsigned char* signature) { |
| | |
| | | } |
| | | |
| | | string LicenseSigner::signString(const string& license) { |
| | | ERR_load_ERR_strings(); |
| | | ERR_load_crypto_strings(); |
| | | OpenSSL_add_all_algorithms(); |
| | | |
| | | size_t slen; |
| | | unsigned char* signature; |
| | | signature = NULL; |
| | |
| | | if (!mdctx) { |
| | | throw logic_error("Message digest creation context"); |
| | | } |
| | | const char *private_key = PRIVATE_KEY; |
| | | const char *private_key = PRIVATE_KEY |
| | | ; |
| | | BIO* bio = BIO_new_mem_buf((void*) (private_key), strlen(private_key)); |
| | | EVP_PKEY *pktmp = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL); |
| | | BIO_free(bio); |
| | |
| | | */ |
| | | //bio = BIO_new_fp(stdout, BIO_NOCLOSE); |
| | | /*int encodedSize = 4 * ceil(slen / 3); |
| | | char* buffer = (char*) (malloc(encodedSize + 1)); |
| | | memset(buffer,0,encodedSize+1);*/ |
| | | char* buffer = (char*) (malloc(encodedSize + 1)); |
| | | memset(buffer,0,encodedSize+1);*/ |
| | | string signatureStr = Opensslb64Encode(slen, signature); |
| | | /* |
| | | * BIO *bio, *b64; |
| | |
| | | */ |
| | | /* Clean up */ |
| | | //free(buffer); |
| | | if (pktmp) |
| | | EVP_PKEY_free(pktmp); |
| | | if (signature) |
| | | OPENSSL_free(signature); |
| | | |