diff options
| author | beck <> | 2002-05-15 02:29:21 +0000 |
|---|---|---|
| committer | beck <> | 2002-05-15 02:29:21 +0000 |
| commit | b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9 (patch) | |
| tree | fa27cf82a1250b64ed3bf5f4a18c7354d470bbcc /src/lib/libcrypto/asn1/nsseq.c | |
| parent | e471e1ea98d673597b182ea85f29e30c97cd08b5 (diff) | |
| download | openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.gz openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.bz2 openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.zip | |
OpenSSL 0.9.7 stable 2002 05 08 merge
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/asn1/nsseq.c | 64 |
1 files changed, 14 insertions, 50 deletions
diff --git a/src/lib/libcrypto/asn1/nsseq.c b/src/lib/libcrypto/asn1/nsseq.c index 6e7f09ba23..50e2d4d07a 100644 --- a/src/lib/libcrypto/asn1/nsseq.c +++ b/src/lib/libcrypto/asn1/nsseq.c | |||
| @@ -58,61 +58,25 @@ | |||
| 58 | 58 | ||
| 59 | #include <stdio.h> | 59 | #include <stdio.h> |
| 60 | #include <stdlib.h> | 60 | #include <stdlib.h> |
| 61 | #include <openssl/asn1_mac.h> | 61 | #include <openssl/asn1t.h> |
| 62 | #include <openssl/err.h> | ||
| 63 | #include <openssl/x509.h> | 62 | #include <openssl/x509.h> |
| 64 | #include <openssl/objects.h> | 63 | #include <openssl/objects.h> |
| 65 | 64 | ||
| 66 | /* Netscape certificate sequence structure */ | 65 | static int nsseq_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it) |
| 67 | |||
| 68 | int i2d_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE *a, unsigned char **pp) | ||
| 69 | { | 66 | { |
| 70 | int v = 0; | 67 | if(operation == ASN1_OP_NEW_POST) { |
| 71 | M_ASN1_I2D_vars(a); | 68 | NETSCAPE_CERT_SEQUENCE *nsseq; |
| 72 | M_ASN1_I2D_len (a->type, i2d_ASN1_OBJECT); | 69 | nsseq = (NETSCAPE_CERT_SEQUENCE *)*pval; |
| 73 | M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(X509,a->certs,i2d_X509,0, | 70 | nsseq->type = OBJ_nid2obj(NID_netscape_cert_sequence); |
| 74 | V_ASN1_SEQUENCE,v); | 71 | } |
| 75 | 72 | return 1; | |
| 76 | M_ASN1_I2D_seq_total(); | ||
| 77 | |||
| 78 | M_ASN1_I2D_put (a->type, i2d_ASN1_OBJECT); | ||
| 79 | M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(X509,a->certs,i2d_X509,0, | ||
| 80 | V_ASN1_SEQUENCE,v); | ||
| 81 | |||
| 82 | M_ASN1_I2D_finish(); | ||
| 83 | } | 73 | } |
| 84 | 74 | ||
| 85 | NETSCAPE_CERT_SEQUENCE *NETSCAPE_CERT_SEQUENCE_new(void) | 75 | /* Netscape certificate sequence structure */ |
| 86 | { | ||
| 87 | NETSCAPE_CERT_SEQUENCE *ret=NULL; | ||
| 88 | ASN1_CTX c; | ||
| 89 | M_ASN1_New_Malloc(ret, NETSCAPE_CERT_SEQUENCE); | ||
| 90 | /* Note hardcoded object type */ | ||
| 91 | ret->type = OBJ_nid2obj(NID_netscape_cert_sequence); | ||
| 92 | ret->certs = NULL; | ||
| 93 | return (ret); | ||
| 94 | M_ASN1_New_Error(ASN1_F_NETSCAPE_CERT_SEQUENCE_NEW); | ||
| 95 | } | ||
| 96 | 76 | ||
| 97 | NETSCAPE_CERT_SEQUENCE *d2i_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE **a, | 77 | ASN1_SEQUENCE_cb(NETSCAPE_CERT_SEQUENCE, nsseq_cb) = { |
| 98 | unsigned char **pp, long length) | 78 | ASN1_SIMPLE(NETSCAPE_CERT_SEQUENCE, type, ASN1_OBJECT), |
| 99 | { | 79 | ASN1_EXP_SEQUENCE_OF_OPT(NETSCAPE_CERT_SEQUENCE, certs, X509, 0) |
| 100 | M_ASN1_D2I_vars(a,NETSCAPE_CERT_SEQUENCE *, | 80 | } ASN1_SEQUENCE_END_cb(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) |
| 101 | NETSCAPE_CERT_SEQUENCE_new); | ||
| 102 | M_ASN1_D2I_Init(); | ||
| 103 | M_ASN1_D2I_start_sequence(); | ||
| 104 | M_ASN1_D2I_get (ret->type, d2i_ASN1_OBJECT); | ||
| 105 | M_ASN1_D2I_get_EXP_set_opt_type(X509,ret->certs,d2i_X509,X509_free,0, | ||
| 106 | V_ASN1_SEQUENCE); | ||
| 107 | M_ASN1_D2I_Finish(a, NETSCAPE_CERT_SEQUENCE_free, | ||
| 108 | ASN1_F_D2I_NETSCAPE_CERT_SEQUENCE); | ||
| 109 | } | ||
| 110 | 81 | ||
| 111 | void NETSCAPE_CERT_SEQUENCE_free (NETSCAPE_CERT_SEQUENCE *a) | 82 | IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) |
| 112 | { | ||
| 113 | if (a == NULL) return; | ||
| 114 | ASN1_OBJECT_free(a->type); | ||
| 115 | if(a->certs) | ||
| 116 | sk_X509_pop_free(a->certs, X509_free); | ||
| 117 | OPENSSL_free (a); | ||
| 118 | } | ||
