diff options
author | miod <> | 2014-04-15 20:19:57 +0000 |
---|---|---|
committer | miod <> | 2014-04-15 20:19:57 +0000 |
commit | f6394a1bd8f61db79694977e8d0afdfd4e4ff1a1 (patch) | |
tree | 3b957c0020405f9f6e90af181b1ebb5124c6e68a /src/lib/libcrypto/asn1/a_verify.c | |
parent | 2125ec026993d82b51335463dc7fc5b899a4057a (diff) | |
download | openbsd-f6394a1bd8f61db79694977e8d0afdfd4e4ff1a1.tar.gz openbsd-f6394a1bd8f61db79694977e8d0afdfd4e4ff1a1.tar.bz2 openbsd-f6394a1bd8f61db79694977e8d0afdfd4e4ff1a1.zip |
The NO_ASN1_OLD define was introduced in 0.9.7, 8 years ago, to allow for
obsolete (and mostly internal) routines to be compiled out.
We don't expect any reasonable software to stick to these interfaces, so better
clean up the view and unifdef -DNO_ASN1_OLD.
The astute reader will notice the existence of NO_OLD_ASN1 which serves a
similar purpose, but is more entangled. Its time will come, soon.
Diffstat (limited to 'src/lib/libcrypto/asn1/a_verify.c')
-rw-r--r-- | src/lib/libcrypto/asn1/a_verify.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/src/lib/libcrypto/asn1/a_verify.c b/src/lib/libcrypto/asn1/a_verify.c index fc84cd3d19..5eb47d768c 100644 --- a/src/lib/libcrypto/asn1/a_verify.c +++ b/src/lib/libcrypto/asn1/a_verify.c | |||
@@ -72,65 +72,6 @@ | |||
72 | #include <openssl/buffer.h> | 72 | #include <openssl/buffer.h> |
73 | #include <openssl/evp.h> | 73 | #include <openssl/evp.h> |
74 | 74 | ||
75 | #ifndef NO_ASN1_OLD | ||
76 | |||
77 | int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *a, ASN1_BIT_STRING *signature, | ||
78 | char *data, EVP_PKEY *pkey) | ||
79 | { | ||
80 | EVP_MD_CTX ctx; | ||
81 | const EVP_MD *type; | ||
82 | unsigned char *p,*buf_in=NULL; | ||
83 | int ret= -1,i,inl; | ||
84 | |||
85 | EVP_MD_CTX_init(&ctx); | ||
86 | i=OBJ_obj2nid(a->algorithm); | ||
87 | type=EVP_get_digestbyname(OBJ_nid2sn(i)); | ||
88 | if (type == NULL) | ||
89 | { | ||
90 | ASN1err(ASN1_F_ASN1_VERIFY,ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM); | ||
91 | goto err; | ||
92 | } | ||
93 | |||
94 | inl=i2d(data,NULL); | ||
95 | buf_in=OPENSSL_malloc((unsigned int)inl); | ||
96 | if (buf_in == NULL) | ||
97 | { | ||
98 | ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_MALLOC_FAILURE); | ||
99 | goto err; | ||
100 | } | ||
101 | p=buf_in; | ||
102 | |||
103 | i2d(data,&p); | ||
104 | if (!EVP_VerifyInit_ex(&ctx,type, NULL) | ||
105 | || !EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl)) | ||
106 | { | ||
107 | ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB); | ||
108 | ret=0; | ||
109 | goto err; | ||
110 | } | ||
111 | |||
112 | OPENSSL_cleanse(buf_in,(unsigned int)inl); | ||
113 | OPENSSL_free(buf_in); | ||
114 | |||
115 | if (EVP_VerifyFinal(&ctx,(unsigned char *)signature->data, | ||
116 | (unsigned int)signature->length,pkey) <= 0) | ||
117 | { | ||
118 | ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB); | ||
119 | ret=0; | ||
120 | goto err; | ||
121 | } | ||
122 | /* we don't need to zero the 'ctx' because we just checked | ||
123 | * public information */ | ||
124 | /* memset(&ctx,0,sizeof(ctx)); */ | ||
125 | ret=1; | ||
126 | err: | ||
127 | EVP_MD_CTX_cleanup(&ctx); | ||
128 | return(ret); | ||
129 | } | ||
130 | |||
131 | #endif | ||
132 | |||
133 | |||
134 | int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, | 75 | int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, |
135 | ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey) | 76 | ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey) |
136 | { | 77 | { |