diff options
Diffstat (limited to 'src/daemon/https/x509/sign.c')
-rw-r--r-- | src/daemon/https/x509/sign.c | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/daemon/https/x509/sign.c b/src/daemon/https/x509/sign.c index eb3da891..1cc032be 100644 --- a/src/daemon/https/x509/sign.c +++ b/src/daemon/https/x509/sign.c | |||
@@ -50,7 +50,8 @@ | |||
50 | */ | 50 | */ |
51 | static int | 51 | static int |
52 | encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, | 52 | encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, |
53 | const MHD_gnutls_datum_t * digest, MHD_gnutls_datum_t * info) | 53 | const MHD_gnutls_datum_t * digest, |
54 | MHD_gnutls_datum_t * info) | ||
54 | { | 55 | { |
55 | ASN1_TYPE dinfo = ASN1_TYPE_EMPTY; | 56 | ASN1_TYPE dinfo = ASN1_TYPE_EMPTY; |
56 | int result; | 57 | int result; |
@@ -65,14 +66,15 @@ encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, | |||
65 | } | 66 | } |
66 | 67 | ||
67 | if ((result = MHD__asn1_create_element (MHD__gnutls_getMHD__gnutls_asn (), | 68 | if ((result = MHD__asn1_create_element (MHD__gnutls_getMHD__gnutls_asn (), |
68 | "GNUTLS.DigestInfo", | 69 | "GNUTLS.DigestInfo", |
69 | &dinfo)) != ASN1_SUCCESS) | 70 | &dinfo)) != ASN1_SUCCESS) |
70 | { | 71 | { |
71 | MHD_gnutls_assert (); | 72 | MHD_gnutls_assert (); |
72 | return MHD_gtls_asn2err (result); | 73 | return MHD_gtls_asn2err (result); |
73 | } | 74 | } |
74 | 75 | ||
75 | result = MHD__asn1_write_value (dinfo, "digestAlgorithm.algorithm", algo, 1); | 76 | result = |
77 | MHD__asn1_write_value (dinfo, "digestAlgorithm.algorithm", algo, 1); | ||
76 | if (result != ASN1_SUCCESS) | 78 | if (result != ASN1_SUCCESS) |
77 | { | 79 | { |
78 | MHD_gnutls_assert (); | 80 | MHD_gnutls_assert (); |
@@ -86,7 +88,7 @@ encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, | |||
86 | Regardless of what is correct, this appears to be what most | 88 | Regardless of what is correct, this appears to be what most |
87 | implementations do. */ | 89 | implementations do. */ |
88 | result = MHD__asn1_write_value (dinfo, "digestAlgorithm.parameters", | 90 | result = MHD__asn1_write_value (dinfo, "digestAlgorithm.parameters", |
89 | "\x05\x00", 2); | 91 | "\x05\x00", 2); |
90 | if (result != ASN1_SUCCESS) | 92 | if (result != ASN1_SUCCESS) |
91 | { | 93 | { |
92 | MHD_gnutls_assert (); | 94 | MHD_gnutls_assert (); |
@@ -94,7 +96,8 @@ encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, | |||
94 | return MHD_gtls_asn2err (result); | 96 | return MHD_gtls_asn2err (result); |
95 | } | 97 | } |
96 | 98 | ||
97 | result = MHD__asn1_write_value (dinfo, "digest", digest->data, digest->size); | 99 | result = |
100 | MHD__asn1_write_value (dinfo, "digest", digest->data, digest->size); | ||
98 | if (result != ASN1_SUCCESS) | 101 | if (result != ASN1_SUCCESS) |
99 | { | 102 | { |
100 | MHD_gnutls_assert (); | 103 | MHD_gnutls_assert (); |
@@ -103,7 +106,7 @@ encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, | |||
103 | } | 106 | } |
104 | 107 | ||
105 | info->size = 0; | 108 | info->size = 0; |
106 | MHD__asn1_der_coding (dinfo, "", NULL, (int*) &info->size, NULL); | 109 | MHD__asn1_der_coding (dinfo, "", NULL, (int *) &info->size, NULL); |
107 | 110 | ||
108 | info->data = MHD_gnutls_malloc (info->size); | 111 | info->data = MHD_gnutls_malloc (info->size); |
109 | if (info->data == NULL) | 112 | if (info->data == NULL) |
@@ -113,7 +116,8 @@ encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, | |||
113 | return GNUTLS_E_MEMORY_ERROR; | 116 | return GNUTLS_E_MEMORY_ERROR; |
114 | } | 117 | } |
115 | 118 | ||
116 | result = MHD__asn1_der_coding (dinfo, "", info->data, (int*) &info->size, NULL); | 119 | result = |
120 | MHD__asn1_der_coding (dinfo, "", info->data, (int *) &info->size, NULL); | ||
117 | if (result != ASN1_SUCCESS) | 121 | if (result != ASN1_SUCCESS) |
118 | { | 122 | { |
119 | MHD_gnutls_assert (); | 123 | MHD_gnutls_assert (); |
@@ -133,8 +137,8 @@ encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, | |||
133 | */ | 137 | */ |
134 | static int | 138 | static int |
135 | pkcs1_rsa_sign (enum MHD_GNUTLS_HashAlgorithm hash, | 139 | pkcs1_rsa_sign (enum MHD_GNUTLS_HashAlgorithm hash, |
136 | const MHD_gnutls_datum_t * text, mpi_t * params, int params_len, | 140 | const MHD_gnutls_datum_t * text, mpi_t * params, |
137 | MHD_gnutls_datum_t * signature) | 141 | int params_len, MHD_gnutls_datum_t * signature) |
138 | { | 142 | { |
139 | int ret; | 143 | int ret; |
140 | opaque _digest[MAX_HASH_SIZE]; | 144 | opaque _digest[MAX_HASH_SIZE]; |
@@ -187,8 +191,9 @@ pkcs1_rsa_sign (enum MHD_GNUTLS_HashAlgorithm hash, | |||
187 | */ | 191 | */ |
188 | static int | 192 | static int |
189 | MHD__gnutls_x509_sign (const MHD_gnutls_datum_t * tbs, | 193 | MHD__gnutls_x509_sign (const MHD_gnutls_datum_t * tbs, |
190 | enum MHD_GNUTLS_HashAlgorithm hash, | 194 | enum MHD_GNUTLS_HashAlgorithm hash, |
191 | MHD_gnutls_x509_privkey_t signer, MHD_gnutls_datum_t * signature) | 195 | MHD_gnutls_x509_privkey_t signer, |
196 | MHD_gnutls_datum_t * signature) | ||
192 | { | 197 | { |
193 | int ret; | 198 | int ret; |
194 | 199 | ||
@@ -218,9 +223,9 @@ MHD__gnutls_x509_sign (const MHD_gnutls_datum_t * tbs, | |||
218 | */ | 223 | */ |
219 | int | 224 | int |
220 | MHD__gnutls_x509_sign_tbs (ASN1_TYPE cert, const char *tbs_name, | 225 | MHD__gnutls_x509_sign_tbs (ASN1_TYPE cert, const char *tbs_name, |
221 | enum MHD_GNUTLS_HashAlgorithm hash, | 226 | enum MHD_GNUTLS_HashAlgorithm hash, |
222 | MHD_gnutls_x509_privkey_t signer, | 227 | MHD_gnutls_x509_privkey_t signer, |
223 | MHD_gnutls_datum_t * signature) | 228 | MHD_gnutls_datum_t * signature) |
224 | { | 229 | { |
225 | int result; | 230 | int result; |
226 | opaque *buf; | 231 | opaque *buf; |