diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2001-02-02 00:45:54 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2001-02-02 00:45:54 +0000 |
commit | 88ce56f8c19afca84548ce85bbc9b5dda3c724f9 (patch) | |
tree | 3246395c2be795f28d84443d3a193efe6d3a96fb /crypto/x509 | |
parent | 664d83bb23e7e6d30b63f6127b454f7c6dc33da9 (diff) |
Various function for commmon operations.
Diffstat (limited to 'crypto/x509')
-rw-r--r-- | crypto/x509/x509.h | 3 | ||||
-rw-r--r-- | crypto/x509/x509_cmp.c | 6 | ||||
-rw-r--r-- | crypto/x509/x_all.c | 9 |
3 files changed, 18 insertions, 0 deletions
diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h index 4b1957253d..c3ec6bf4b5 100644 --- a/crypto/x509/x509.h +++ b/crypto/x509/x509.h @@ -719,6 +719,8 @@ int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_pubkey_digest(const X509 *data,const EVP_MD *type, + unsigned char *md, unsigned int *len); int X509_digest(const X509 *data,const EVP_MD *type, unsigned char *md, unsigned int *len); int X509_CRL_digest(const X509_CRL *data,const EVP_MD *type, @@ -937,6 +939,7 @@ int X509_set_notBefore(X509 *x, ASN1_TIME *tm); int X509_set_notAfter(X509 *x, ASN1_TIME *tm); int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); EVP_PKEY * X509_get_pubkey(X509 *x); +ASN1_BIT_STRING * X509_get0_pubkey_bitstr(const X509 *x); int X509_certificate_type(X509 *x,EVP_PKEY *pubkey /* optional */); int X509_REQ_set_version(X509_REQ *x,long version); diff --git a/crypto/x509/x509_cmp.c b/crypto/x509/x509_cmp.c index b147d573d2..7927155791 100644 --- a/crypto/x509/x509_cmp.c +++ b/crypto/x509/x509_cmp.c @@ -264,6 +264,12 @@ EVP_PKEY *X509_get_pubkey(X509 *x) return(X509_PUBKEY_get(x->cert_info->key)); } +ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x) + { + if(!x) return NULL; + return x->cert_info->key->public_key; + } + int X509_check_private_key(X509 *x, EVP_PKEY *k) { EVP_PKEY *xk=NULL; diff --git a/crypto/x509/x_all.c b/crypto/x509/x_all.c index 7095a2850e..de53e67493 100644 --- a/crypto/x509/x_all.c +++ b/crypto/x509/x_all.c @@ -379,6 +379,15 @@ X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne) return ASN1_item_dup(&X509_NAME_ENTRY_it, ne); } +int X509_pubkey_digest(const X509 *data, const EVP_MD *type, unsigned char *md, + unsigned int *len) + { + ASN1_BIT_STRING *key; + key = X509_get0_pubkey_bitstr(data); + if(!key) return 0; + return EVP_Digest(key->data, key->length, md, len, type); + } + int X509_digest(const X509 *data, const EVP_MD *type, unsigned char *md, unsigned int *len) { |