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 'src/lib/libcrypto/asn1/nsseq.c')
-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 | } | ||