summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES4
-rw-r--r--crypto/asn1/x_x509.c14
-rw-r--r--crypto/x509/x509.h4
3 files changed, 22 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 8f1baae418..9ebc5a3f7c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,10 @@
Changes between 1.0.1 and 1.0.2 [xx XXX xxxx]
+ *) New functions to retrieve certificate signature and signature
+ OID NID.
+ [Steve Henson]
+
*) Add new "valid_flags" field to CERT_PKEY structure which determines what
the certificate can be used for (if anything). Set valid_flags field
in new tls1_check_chain function. Simplify ssl_set_cert_masks which used
diff --git a/crypto/asn1/x_x509.c b/crypto/asn1/x_x509.c
index de3df9eb51..fd5e6c6428 100644
--- a/crypto/asn1/x_x509.c
+++ b/crypto/asn1/x_x509.c
@@ -192,3 +192,17 @@ int i2d_X509_AUX(X509 *a, unsigned char **pp)
if(a) length += i2d_X509_CERT_AUX(a->aux, pp);
return length;
}
+
+void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg,
+ const X509 *x)
+ {
+ if (psig)
+ *psig = x->signature;
+ if (palg)
+ *palg = x->sig_alg;
+ }
+
+int X509_get_signature_nid(const X509 *x)
+ {
+ return OBJ_obj2nid(x->sig_alg->algorithm);
+ }
diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h
index 092dd7450d..ea310b4e80 100644
--- a/crypto/x509/x509.h
+++ b/crypto/x509/x509.h
@@ -848,6 +848,10 @@ void *X509_get_ex_data(X509 *r, int idx);
int i2d_X509_AUX(X509 *a,unsigned char **pp);
X509 * d2i_X509_AUX(X509 **a,const unsigned char **pp,long length);
+void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg,
+ const X509 *x);
+int X509_get_signature_nid(const X509 *x);
+
int X509_alias_set1(X509 *x, unsigned char *name, int len);
int X509_keyid_set1(X509 *x, unsigned char *id, int len);
unsigned char * X509_alias_get0(X509 *x, int *len);