diff options
author | Ralf S. Engelschall <rse@openssl.org> | 1998-12-21 11:00:56 +0000 |
---|---|---|
committer | Ralf S. Engelschall <rse@openssl.org> | 1998-12-21 11:00:56 +0000 |
commit | 31b8d8684441e6cd5138832bb1b2ddb10acd6ba6 (patch) | |
tree | bd2486e342980b19b92cff888ae6206d906a089d /crypto/x509 | |
parent | 7dfb0b774e6592dcbfe47015168a0ac8b44e2a17 (diff) | |
parent | dfeab0689f69c0b4bd3480ffd37a9cacc2f17d9c (diff) | |
download | openssl-31b8d8684441e6cd5138832bb1b2ddb10acd6ba6.tar.gz |
This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
Diffstat (limited to 'crypto/x509')
-rw-r--r-- | crypto/x509/v3_x509.c | 1 | ||||
-rw-r--r-- | crypto/x509/x509.h | 14 | ||||
-rw-r--r-- | crypto/x509/x509_cmp.c | 44 | ||||
-rw-r--r-- | crypto/x509/x509_err.c | 4 | ||||
-rw-r--r-- | crypto/x509/x509_lu.c | 6 | ||||
-rw-r--r-- | crypto/x509/x509_r2x.c | 16 | ||||
-rw-r--r-- | crypto/x509/x509_vfy.c | 53 | ||||
-rw-r--r-- | crypto/x509/x509_vfy.h | 5 | ||||
-rw-r--r-- | crypto/x509/x_all.c | 14 |
9 files changed, 91 insertions, 66 deletions
diff --git a/crypto/x509/v3_x509.c b/crypto/x509/v3_x509.c index f685aa4c71..fcf30f7452 100644 --- a/crypto/x509/v3_x509.c +++ b/crypto/x509/v3_x509.c @@ -174,6 +174,7 @@ unsigned int use; key_usage_data[i].name); first=0; } + break; } return(1); } diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h index 95114f7c43..4ae05bc0de 100644 --- a/crypto/x509/x509.h +++ b/crypto/x509/x509.h @@ -355,6 +355,9 @@ typedef struct CBCParameter_st #define X509_dup(x509) (X509 *)ASN1_dup((int (*)())i2d_X509, \ (char *(*)())d2i_X509,(char *)x509) +#define X509_ATTRIBUTE_dup(xa) (X509_ATTRIBUTE *)ASN1_dup(\ + (int (*)())i2d_X509_ATTRIBUTE, \ + (char *(*)())d2i_X509_ATTRIBUTE,(char *)xa) #define X509_EXTENSION_dup(ex) (X509_EXTENSION *)ASN1_dup( \ (int (*)())i2d_X509_EXTENSION, \ (char *(*)())d2i_X509_EXTENSION,(char *)ex) @@ -442,6 +445,9 @@ typedef struct CBCParameter_st #define i2d_DSAPrivateKey_bio(bp,dsa) ASN1_i2d_bio(i2d_DSAPrivateKey,bp, \ (unsigned char *)dsa) +#define X509_ALGOR_dup(xn) (X509_ALGOR *)ASN1_dup((int (*)())i2d_X509_ALGOR,\ + (char *(*)())d2i_X509_ALGOR,(char *)xn) + #define X509_NAME_dup(xn) (X509_NAME *)ASN1_dup((int (*)())i2d_X509_NAME, \ (char *(*)())d2i_X509_NAME,(char *)xn) #define X509_NAME_ENTRY_dup(ne) (X509_NAME_ENTRY *)ASN1_dup( \ @@ -453,10 +459,12 @@ typedef struct CBCParameter_st ASN1_digest((int (*)())i2d_X509,type,(char *)data,md,len) #define X509_NAME_digest(data,type,md,len) \ ASN1_digest((int (*)())i2d_X509_NAME,type,(char *)data,md,len) +#ifndef PKCS7_ISSUER_AND_SERIAL_digest #define PKCS7_ISSUER_AND_SERIAL_digest(data,type,md,len) \ ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type,\ (char *)data,md,len) #endif +#endif #define X509_EXT_PACK_UNKNOWN 1 #define X509_EXT_PACK_STRING 2 @@ -528,9 +536,11 @@ int i2d_RSAPublicKey_bio(BIO *bp,RSA *rsa); #endif X509 *X509_dup(X509 *x509); +X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); X509_CRL *X509_CRL_dup(X509_CRL *crl); X509_REQ *X509_REQ_dup(X509_REQ *req); +X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); X509_NAME *X509_NAME_dup(X509_NAME *xn); X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); RSA *RSAPublicKey_dup(RSA *rsa); @@ -595,6 +605,8 @@ void X509_ATTRIBUTE_free(X509_ATTRIBUTE *a); int i2d_X509_ATTRIBUTE(X509_ATTRIBUTE *a,unsigned char **pp); X509_ATTRIBUTE *d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **a,unsigned char **pp, long length); +X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, char *value); + X509_EXTENSION *X509_EXTENSION_new(void ); void X509_EXTENSION_free(X509_EXTENSION *a); @@ -852,6 +864,7 @@ RSA *d2i_RSAPublicKey_bio(); int i2d_RSAPublicKey_bio(); X509 *X509_dup(); +X509_ATTRIBUTE *X509_ATTRIBUTE_dup(); X509_EXTENSION *X509_EXTENSION_dup(); X509_CRL *X509_CRL_dup(); X509_REQ *X509_REQ_dup(); @@ -913,6 +926,7 @@ X509_ATTRIBUTE *X509_ATTRIBUTE_new(); void X509_ATTRIBUTE_free(); int i2d_X509_ATTRIBUTE(); X509_ATTRIBUTE *d2i_X509_ATTRIBUTE(); +X509_ATTRIBUTE *X509_ATTRIBUTE_create(); X509_EXTENSION *X509_EXTENSION_new(); void X509_EXTENSION_free(); diff --git a/crypto/x509/x509_cmp.c b/crypto/x509/x509_cmp.c index f9d9510ac5..ea6a65d2a1 100644 --- a/crypto/x509/x509_cmp.c +++ b/crypto/x509/x509_cmp.c @@ -255,3 +255,47 @@ X509_NAME *name; return(NULL); } +EVP_PKEY *X509_get_pubkey(x) +X509 *x; + { + if ((x == NULL) || (x->cert_info == NULL)) + return(NULL); + return(X509_PUBKEY_get(x->cert_info->key)); + } + +int X509_check_private_key(x,k) +X509 *x; +EVP_PKEY *k; + { + EVP_PKEY *xk=NULL; + int ok=0; + + xk=X509_get_pubkey(x); + if (xk->type != k->type) goto err; + switch (k->type) + { +#ifndef NO_RSA + case EVP_PKEY_RSA: + if (BN_cmp(xk->pkey.rsa->n,k->pkey.rsa->n) != 0) goto err; + if (BN_cmp(xk->pkey.rsa->e,k->pkey.rsa->e) != 0) goto err; + break; +#endif +#ifndef NO_DSA + case EVP_PKEY_DSA: + if (BN_cmp(xk->pkey.dsa->pub_key,k->pkey.dsa->pub_key) != 0) + goto err; + break; +#endif +#ifndef NO_DH + case EVP_PKEY_DH: + /* No idea */ + goto err; +#endif + default: + goto err; + } + + ok=1; +err: + return(ok); + } diff --git a/crypto/x509/x509_err.c b/crypto/x509/x509_err.c index 9304721612..0c7e30b2c9 100644 --- a/crypto/x509/x509_err.c +++ b/crypto/x509/x509_err.c @@ -118,8 +118,8 @@ void ERR_load_X509_strings() { static int init=1; - if (init); - {; + if (init) + { init=0; #ifndef NO_ERR ERR_load_strings(ERR_LIB_X509,X509_str_functs); diff --git a/crypto/x509/x509_lu.c b/crypto/x509/x509_lu.c index 2c7e10a46e..a740510b07 100644 --- a/crypto/x509/x509_lu.c +++ b/crypto/x509/x509_lu.c @@ -109,7 +109,7 @@ int X509_LOOKUP_shutdown(ctx) X509_LOOKUP *ctx; { if (ctx->method == NULL) return(0); - if (ctx->method->init != NULL) + if (ctx->method->shutdown != NULL) return(ctx->method->shutdown(ctx)); else return(1); @@ -318,7 +318,7 @@ X509_OBJECT *ret; X509_OBJECT stmp,*tmp; int i,j; - tmp=X509_OBJECT_retrive_by_subject(ctx->certs,type,name); + tmp=X509_OBJECT_retrieve_by_subject(ctx->certs,type,name); if (tmp == NULL) { @@ -381,7 +381,7 @@ X509_OBJECT *a; } } -X509_OBJECT *X509_OBJECT_retrive_by_subject(h,type,name) +X509_OBJECT *X509_OBJECT_retrieve_by_subject(h,type,name) LHASH *h; int type; X509_NAME *name; diff --git a/crypto/x509/x509_r2x.c b/crypto/x509/x509_r2x.c index 6aec2427f7..2d8721306c 100644 --- a/crypto/x509/x509_r2x.c +++ b/crypto/x509/x509_r2x.c @@ -72,8 +72,6 @@ int days; EVP_PKEY *pkey; { X509 *ret=NULL; - int er=1; - X509_REQ_INFO *ri=NULL; X509_CINF *xi=NULL; X509_NAME *xn; @@ -84,13 +82,9 @@ EVP_PKEY *pkey; } /* duplicate the request */ - ri=(X509_REQ_INFO *)ASN1_dup(i2d_X509_REQ_INFO, - (char *(*)())d2i_X509_REQ_INFO,(char *)r->req_info); - if (ri == NULL) goto err; - xi=ret->cert_info; - if (sk_num(ri->attributes) != 0) + if (sk_num(r->req_info->attributes) != 0) { if ((xi->version=ASN1_INTEGER_new()) == NULL) goto err; if (!ASN1_INTEGER_set(xi->version,2)) goto err; @@ -109,13 +103,11 @@ EVP_PKEY *pkey; if (!X509_sign(ret,pkey,EVP_md5())) goto err; - er=0; -err: - if (er) + if (0) { +err: X509_free(ret); - X509_REQ_INFO_free(ri); - return(NULL); + ret=NULL; } return(ret); } diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c index c1be91edba..1d62f2df93 100644 --- a/crypto/x509/x509_vfy.c +++ b/crypto/x509/x509_vfy.c @@ -80,7 +80,7 @@ static int null_callback(); static int internal_verify(); #endif -char *X509_version="X509 part of SSLeay 0.9.0b 29-Jun-1998"; +char *X509_version="X509 part of SSLeay 0.9.1a 06-Jul-1998"; static STACK *x509_store_ctx_method=NULL; static int x509_store_ctx_num=0; #if 0 @@ -285,7 +285,11 @@ X509_STORE_CTX *ctx; ok=ctx->ctx->verify(ctx); else ok=internal_verify(ctx); + if (0) + { end: + X509_get_pubkey_parameters(NULL,ctx->chain); + } if (sktmp != NULL) sk_free(sktmp); if (chain_ss != NULL) X509_free(chain_ss); return(ok); @@ -434,7 +438,7 @@ ASN1_UTCTIME *ctm; offset=((str[1]-'0')*10+(str[2]-'0'))*60; offset+=(str[3]-'0')*10+(str[4]-'0'); if (*str == '-') - offset=-offset; + offset= -offset; } atm.type=V_ASN1_UTCTIME; atm.length=sizeof(buff2); @@ -509,51 +513,6 @@ STACK *chain; return(1); } -EVP_PKEY *X509_get_pubkey(x) -X509 *x; - { - if ((x == NULL) || (x->cert_info == NULL)) - return(NULL); - return(X509_PUBKEY_get(x->cert_info->key)); - } - -int X509_check_private_key(x,k) -X509 *x; -EVP_PKEY *k; - { - EVP_PKEY *xk=NULL; - int ok=0; - - xk=X509_get_pubkey(x); - if (xk->type != k->type) goto err; - switch (k->type) - { -#ifndef NO_RSA - case EVP_PKEY_RSA: - if (BN_cmp(xk->pkey.rsa->n,k->pkey.rsa->n) != 0) goto err; - if (BN_cmp(xk->pkey.rsa->e,k->pkey.rsa->e) != 0) goto err; - break; -#endif -#ifndef NO_DSA - case EVP_PKEY_DSA: - if (BN_cmp(xk->pkey.dsa->pub_key,k->pkey.dsa->pub_key) != 0) - goto err; - break; -#endif -#ifndef NO_DH - case EVP_PKEY_DH: - /* No idea */ - goto err; -#endif - default: - goto err; - } - - ok=1; -err: - return(ok); - } - int X509_STORE_add_cert(ctx,x) X509_STORE *ctx; X509 *x; diff --git a/crypto/x509/x509_vfy.h b/crypto/x509/x509_vfy.h index dfc060f899..6849a8c749 100644 --- a/crypto/x509/x509_vfy.h +++ b/crypto/x509/x509_vfy.h @@ -245,7 +245,7 @@ X509_LOOKUP_METHOD *X509_LOOKUP_dir(); #ifndef NOPROTO #ifdef HEADER_LHASH_H -X509_OBJECT *X509_OBJECT_retrive_by_subject(LHASH *h,int type,X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_by_subject(LHASH *h,int type,X509_NAME *name); #endif void X509_OBJECT_up_ref_count(X509_OBJECT *a); void X509_OBJECT_free_contents(X509_OBJECT *a); @@ -313,7 +313,7 @@ void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,STACK /* X509 */ *sk); #else #ifdef HEADER_LHASH_H -X509_OBJECT *X509_OBJECT_retrive_by_subject(); +X509_OBJECT *X509_OBJECT_retrieve_by_subject(); #endif void X509_OBJECT_up_ref_count(); void X509_OBJECT_free_contents(); @@ -359,6 +359,7 @@ int X509_STORE_load_locations (); int X509_STORE_set_default_paths(); #endif +int X509_STORE_CTX_get_ex_new_index(); int X509_STORE_CTX_set_ex_data(); char * X509_STORE_CTX_get_ex_data(); int X509_STORE_CTX_get_error(); diff --git a/crypto/x509/x_all.c b/crypto/x509/x_all.c index b7dde23e9a..682de167f7 100644 --- a/crypto/x509/x_all.c +++ b/crypto/x509/x_all.c @@ -133,6 +133,13 @@ EVP_MD *md; x->signature, (char *)x->spkac,pkey,md)); } +X509_ATTRIBUTE *X509_ATTRIBUTE_dup(xa) +X509_ATTRIBUTE *xa; + { + return((X509_ATTRIBUTE *)ASN1_dup((int (*)())i2d_X509_ATTRIBUTE, + (char *(*)())d2i_X509_ATTRIBUTE,(char *)xa)); + } + X509 *X509_dup(x509) X509 *x509; { @@ -421,6 +428,13 @@ DSA *dsa; } #endif +X509_ALGOR *X509_ALGOR_dup(xn) +X509_ALGOR *xn; + { + return((X509_ALGOR *)ASN1_dup((int (*)())i2d_X509_ALGOR, + (char *(*)())d2i_X509_ALGOR,(char *)xn)); + } + X509_NAME *X509_NAME_dup(xn) X509_NAME *xn; { |