aboutsummaryrefslogtreecommitdiff
path: root/src/daemon/https/x509/sign.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon/https/x509/sign.c')
-rw-r--r--src/daemon/https/x509/sign.c35
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 */
51static int 51static int
52encode_ber_digest_info (enum MHD_GNUTLS_HashAlgorithm hash, 52encode_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 */
134static int 138static int
135pkcs1_rsa_sign (enum MHD_GNUTLS_HashAlgorithm hash, 139pkcs1_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 */
188static int 192static int
189MHD__gnutls_x509_sign (const MHD_gnutls_datum_t * tbs, 193MHD__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 */
219int 224int
220MHD__gnutls_x509_sign_tbs (ASN1_TYPE cert, const char *tbs_name, 225MHD__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;