Crypto-Utils

 view release on metacpan or  search on metacpan

ffi/openssl-func.c  view on Meta::CPAN

BF_EXPORT unsigned char *read_key(EVP_PKEY *pkey) {
  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);

  BN_free(priv_bn);

  return priv_hex;

ffi/openssl-func.c  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) {
    EVP_PKEY_CTX_free(ctx);

t/12.opaque-derive_key_pair.t  view on Meta::CPAN

my $seed       = pack( "H*",
    '5496a9d861b51d9e797e836a130fee901dab7c96eea77f6e65bf1b9e5a44b136' );
my $info                = 'OPAQUE-DeriveAuthKeyPair';
my $hash_name           = 'SHA256';
my $expand_message_func = \&expand_message_xmd;

my $ec_key_r =
  derive_key_pair( $group_name, $seed, $info, "DeriveKeyPair" . $context_string,
    $hash_name, $expand_message_func );

#my $skS_bn = $skS->get0_private_key();
is(
    BN_bn2hex( $ec_key_r->{priv_bn} ),
    'E7DB44B7F7495298770AF98417FDEEC6C8299562325E9330A79EEBF3D2A1A765',
    'derive_key_pair'
);

done_testing;

t/16.oprf-derive_key_pair.t  view on Meta::CPAN

my $seed       = pack( "H*",
    'a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3' );
my $info                = pack( "H*", '74657374206b6579' );
my $hash_name           = 'SHA256';
my $expand_message_func = \&expand_message_xmd;

my $ec_key_r =
  derive_key_pair( $group_name, $seed, $info, "DeriveKeyPair" . $context_string,
    $hash_name, $expand_message_func );

#my $skS_bn = $skS->get0_private_key();
is(
    uc( BN_bn2hex( $ec_key_r->{priv_bn} ) ),
    '88A91851D93AB3E4F2636BABC60D6CE9D1AEE2B86DECE13FA8590D955A08D987',
    'derive_key_pair'
);

done_testing;



( run in 0.729 second using v1.01-cache-2.11-cpan-6aa56a78535 )