コード例 #1
0
ファイル: pki.c プロジェクト: open-iscsi/open-isns
int
i2d_DSA_PUBKEY_backwards(DSA *dsa, unsigned char **ptr)
{
	unsigned char *buf;
	int len;

	len = i2d_DSA_PUBKEY(dsa, NULL);
	if (len < 0)
		return 0;

	*ptr = buf = OPENSSL_malloc(len);
	return i2d_DSA_PUBKEY(dsa, &buf);
}
コード例 #2
0
ファイル: openssh.c プロジェクト: cran/openssl
// See https://tools.ietf.org/html/rfc4253: ... the "ssh-dss" key format has ...
SEXP R_dsa_pubkey_build(SEXP p, SEXP q, SEXP g, SEXP y){
  DSA *dsa = DSA_new();
  MY_DSA_set0_pqg(dsa, new_bignum_from_r(p), new_bignum_from_r(q), new_bignum_from_r(g));
  MY_DSA_set0_key(dsa, new_bignum_from_r(y), NULL);
  unsigned char *buf = NULL;
  int len = i2d_DSA_PUBKEY(dsa, &buf);
  bail(len);
  DSA_free(dsa);
  SEXP res = allocVector(RAWSXP, len);
  memcpy(RAW(res), buf, len);
  OPENSSL_free(buf);
  return res;
}
コード例 #3
0
ファイル: pki.c プロジェクト: open-iscsi/open-isns
int
isns_dsa_encode_public(EVP_PKEY *pkey, void **ptr, size_t *len)
{
	int	bytes;

	*ptr = NULL;
	bytes = i2d_DSA_PUBKEY(EVP_PKEY_get0_DSA(pkey), (unsigned char **) ptr);
	if (bytes < 0)
		return 0;

	*len = bytes;
	return 1;
}