diff options
| author | djm <> | 2008-09-06 12:17:54 +0000 |
|---|---|---|
| committer | djm <> | 2008-09-06 12:17:54 +0000 |
| commit | 6b62d1fdd8a4fd35acfcc0c4bb1bf8b757fa8cda (patch) | |
| tree | 7ccc28afe1789ea3dbedf72365f955d5b8e105b5 /src/lib/libcrypto/asn1/x_algor.c | |
| parent | 89181603212b41e95cde36b1be5a146ce8fb2935 (diff) | |
| download | openbsd-6b62d1fdd8a4fd35acfcc0c4bb1bf8b757fa8cda.tar.gz openbsd-6b62d1fdd8a4fd35acfcc0c4bb1bf8b757fa8cda.tar.bz2 openbsd-6b62d1fdd8a4fd35acfcc0c4bb1bf8b757fa8cda.zip | |
resolve conflicts
Diffstat (limited to 'src/lib/libcrypto/asn1/x_algor.c')
| -rw-r--r-- | src/lib/libcrypto/asn1/x_algor.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/lib/libcrypto/asn1/x_algor.c b/src/lib/libcrypto/asn1/x_algor.c index 00b9ea54a1..33533aba86 100644 --- a/src/lib/libcrypto/asn1/x_algor.c +++ b/src/lib/libcrypto/asn1/x_algor.c | |||
| @@ -66,8 +66,65 @@ ASN1_SEQUENCE(X509_ALGOR) = { | |||
| 66 | ASN1_OPT(X509_ALGOR, parameter, ASN1_ANY) | 66 | ASN1_OPT(X509_ALGOR, parameter, ASN1_ANY) |
| 67 | } ASN1_SEQUENCE_END(X509_ALGOR) | 67 | } ASN1_SEQUENCE_END(X509_ALGOR) |
| 68 | 68 | ||
| 69 | ASN1_ITEM_TEMPLATE(X509_ALGORS) = | ||
| 70 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, algorithms, X509_ALGOR) | ||
| 71 | ASN1_ITEM_TEMPLATE_END(X509_ALGORS) | ||
| 72 | |||
| 69 | IMPLEMENT_ASN1_FUNCTIONS(X509_ALGOR) | 73 | IMPLEMENT_ASN1_FUNCTIONS(X509_ALGOR) |
| 74 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_ALGORS, X509_ALGORS, X509_ALGORS) | ||
| 70 | IMPLEMENT_ASN1_DUP_FUNCTION(X509_ALGOR) | 75 | IMPLEMENT_ASN1_DUP_FUNCTION(X509_ALGOR) |
| 71 | 76 | ||
| 72 | IMPLEMENT_STACK_OF(X509_ALGOR) | 77 | IMPLEMENT_STACK_OF(X509_ALGOR) |
| 73 | IMPLEMENT_ASN1_SET_OF(X509_ALGOR) | 78 | IMPLEMENT_ASN1_SET_OF(X509_ALGOR) |
| 79 | |||
| 80 | int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval) | ||
| 81 | { | ||
| 82 | if (!alg) | ||
| 83 | return 0; | ||
| 84 | if (ptype != V_ASN1_UNDEF) | ||
| 85 | { | ||
| 86 | if (alg->parameter == NULL) | ||
| 87 | alg->parameter = ASN1_TYPE_new(); | ||
| 88 | if (alg->parameter == NULL) | ||
| 89 | return 0; | ||
| 90 | } | ||
| 91 | if (alg) | ||
| 92 | { | ||
| 93 | if (alg->algorithm) | ||
| 94 | ASN1_OBJECT_free(alg->algorithm); | ||
| 95 | alg->algorithm = aobj; | ||
| 96 | } | ||
| 97 | if (ptype == 0) | ||
| 98 | return 1; | ||
| 99 | if (ptype == V_ASN1_UNDEF) | ||
| 100 | { | ||
| 101 | if (alg->parameter) | ||
| 102 | { | ||
| 103 | ASN1_TYPE_free(alg->parameter); | ||
| 104 | alg->parameter = NULL; | ||
| 105 | } | ||
| 106 | } | ||
| 107 | else | ||
| 108 | ASN1_TYPE_set(alg->parameter, ptype, pval); | ||
| 109 | return 1; | ||
| 110 | } | ||
| 111 | |||
| 112 | void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, | ||
| 113 | X509_ALGOR *algor) | ||
| 114 | { | ||
| 115 | if (paobj) | ||
| 116 | *paobj = algor->algorithm; | ||
| 117 | if (pptype) | ||
| 118 | { | ||
| 119 | if (algor->parameter == NULL) | ||
| 120 | { | ||
| 121 | *pptype = V_ASN1_UNDEF; | ||
| 122 | return; | ||
| 123 | } | ||
| 124 | else | ||
| 125 | *pptype = algor->parameter->type; | ||
| 126 | if (ppval) | ||
| 127 | *ppval = algor->parameter->value.ptr; | ||
| 128 | } | ||
| 129 | } | ||
| 130 | |||
