Crypt-OpenSSL-Base-Func

 view release on metacpan or  search on metacpan

Func.xs  view on Meta::CPAN

{
  BIGNUM *priv_bn = NULL;
    char* priv_hex = NULL;
    char* priv = NULL;
    size_t priv_len=0;

    EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_PRIV_KEY, &priv_bn);

    if(priv_bn==NULL){

        EVP_PKEY_get_raw_private_key(pkey, NULL, &priv_len);
        priv = OPENSSL_malloc(priv_len);
        EVP_PKEY_get_raw_private_key(pkey, priv, &priv_len);

        priv_bn = BN_bin2bn(priv, priv_len, NULL);
        OPENSSL_free(priv);
    }

    priv_hex = BN_bn2hex(priv_bn);

    OPENSSL_free(priv_bn);

    return priv_hex;

Func.xs  view on Meta::CPAN


    unsigned char* priv=NULL;
    size_t priv_len;
    BIGNUM *priv_bn = NULL;

    nid = OBJ_sn2nid(group_name);

    priv = OPENSSL_hexstr2buf(priv_hex, &priv_len);

    if(priv){
        pkey = EVP_PKEY_new_raw_private_key(nid, NULL, priv, priv_len);
    }else{
        ctx = EVP_PKEY_CTX_new_id(nid, NULL);
        if(ctx){
            EVP_PKEY_keygen_init(ctx);
            EVP_PKEY_keygen(ctx, &pkey);
        }
    }

    if(pkey)
        return pkey;



( run in 0.445 second using v1.01-cache-2.11-cpan-a5abf4f5562 )