diff options
Diffstat (limited to 'lib/x509/mpi.c')
-rw-r--r-- | lib/x509/mpi.c | 713 |
1 files changed, 385 insertions, 328 deletions
diff --git a/lib/x509/mpi.c b/lib/x509/mpi.c index 280aa794f5..4c891c4159 100644 --- a/lib/x509/mpi.c +++ b/lib/x509/mpi.c @@ -37,44 +37,49 @@ * extraction. This reads the BIT STRING subjectPublicKey. * Returns 2 parameters (m,e). */ -int _gnutls_x509_read_rsa_params(opaque * der, int dersize, mpi_t * params) +int +_gnutls_x509_read_rsa_params (opaque * der, int dersize, mpi_t * params) { - int result; - ASN1_TYPE spk = ASN1_TYPE_EMPTY; + int result; + ASN1_TYPE spk = ASN1_TYPE_EMPTY; - if ((result = asn1_create_element - (_gnutls_get_gnutls_asn(), "GNUTLS.RSAPublicKey", &spk)) - != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if ((result = asn1_create_element + (_gnutls_get_gnutls_asn (), "GNUTLS.RSAPublicKey", &spk)) + != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - result = asn1_der_decoding(&spk, der, dersize, NULL); + result = asn1_der_decoding (&spk, der, dersize, NULL); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - asn1_delete_structure(&spk); - return _gnutls_asn2err(result); + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + asn1_delete_structure (&spk); + return _gnutls_asn2err (result); } - if ((result = _gnutls_x509_read_int(spk, "modulus", ¶ms[0])) < 0) { - gnutls_assert(); - asn1_delete_structure(&spk); - return GNUTLS_E_ASN1_GENERIC_ERROR; + if ((result = _gnutls_x509_read_int (spk, "modulus", ¶ms[0])) < 0) + { + gnutls_assert (); + asn1_delete_structure (&spk); + return GNUTLS_E_ASN1_GENERIC_ERROR; } - if ((result = _gnutls_x509_read_int(spk, "publicExponent", - ¶ms[1])) < 0) { - gnutls_assert(); - _gnutls_mpi_release(¶ms[0]); - asn1_delete_structure(&spk); - return GNUTLS_E_ASN1_GENERIC_ERROR; + if ((result = _gnutls_x509_read_int (spk, "publicExponent", + ¶ms[1])) < 0) + { + gnutls_assert (); + _gnutls_mpi_release (¶ms[0]); + asn1_delete_structure (&spk); + return GNUTLS_E_ASN1_GENERIC_ERROR; } - asn1_delete_structure(&spk); + asn1_delete_structure (&spk); - return 0; + return 0; } @@ -83,60 +88,66 @@ int _gnutls_x509_read_rsa_params(opaque * der, int dersize, mpi_t * params) * from the certificate (subjectPublicKey BIT STRING). * params[0-2] */ -int _gnutls_x509_read_dsa_params(opaque * der, int dersize, mpi_t * params) +int +_gnutls_x509_read_dsa_params (opaque * der, int dersize, mpi_t * params) { - int result; - ASN1_TYPE spk = ASN1_TYPE_EMPTY; + int result; + ASN1_TYPE spk = ASN1_TYPE_EMPTY; - if ((result = asn1_create_element - (_gnutls_get_pkix(), "PKIX1.Dss-Parms", &spk)) != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if ((result = asn1_create_element + (_gnutls_get_pkix (), "PKIX1.Dss-Parms", &spk)) != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - result = asn1_der_decoding(&spk, der, dersize, NULL); + result = asn1_der_decoding (&spk, der, dersize, NULL); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - asn1_delete_structure(&spk); - return _gnutls_asn2err(result); + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + asn1_delete_structure (&spk); + return _gnutls_asn2err (result); } - /* FIXME: If the parameters are not included in the certificate - * then the issuer's parameters should be used. This is not - * done yet. - */ + /* FIXME: If the parameters are not included in the certificate + * then the issuer's parameters should be used. This is not + * done yet. + */ - /* Read p */ + /* Read p */ - if ((result = _gnutls_x509_read_int(spk, "p", ¶ms[0])) < 0) { - gnutls_assert(); - asn1_delete_structure(&spk); - return GNUTLS_E_ASN1_GENERIC_ERROR; + if ((result = _gnutls_x509_read_int (spk, "p", ¶ms[0])) < 0) + { + gnutls_assert (); + asn1_delete_structure (&spk); + return GNUTLS_E_ASN1_GENERIC_ERROR; } - /* Read q */ + /* Read q */ - if ((result = _gnutls_x509_read_int(spk, "q", ¶ms[1])) < 0) { - gnutls_assert(); - asn1_delete_structure(&spk); - _gnutls_mpi_release(¶ms[0]); - return GNUTLS_E_ASN1_GENERIC_ERROR; + if ((result = _gnutls_x509_read_int (spk, "q", ¶ms[1])) < 0) + { + gnutls_assert (); + asn1_delete_structure (&spk); + _gnutls_mpi_release (¶ms[0]); + return GNUTLS_E_ASN1_GENERIC_ERROR; } - /* Read g */ + /* Read g */ - if ((result = _gnutls_x509_read_int(spk, "g", ¶ms[2])) < 0) { - gnutls_assert(); - asn1_delete_structure(&spk); - _gnutls_mpi_release(¶ms[0]); - _gnutls_mpi_release(¶ms[1]); - return GNUTLS_E_ASN1_GENERIC_ERROR; + if ((result = _gnutls_x509_read_int (spk, "g", ¶ms[2])) < 0) + { + gnutls_assert (); + asn1_delete_structure (&spk); + _gnutls_mpi_release (¶ms[0]); + _gnutls_mpi_release (¶ms[1]); + return GNUTLS_E_ASN1_GENERIC_ERROR; } - asn1_delete_structure(&spk); + asn1_delete_structure (&spk); - return 0; + return 0; } @@ -144,133 +155,146 @@ int _gnutls_x509_read_dsa_params(opaque * der, int dersize, mpi_t * params) * from the certificate * only sets params[3] */ -int _gnutls_x509_read_dsa_pubkey(opaque * der, int dersize, mpi_t * params) +int +_gnutls_x509_read_dsa_pubkey (opaque * der, int dersize, mpi_t * params) { - int result; - ASN1_TYPE spk = ASN1_TYPE_EMPTY; + int result; + ASN1_TYPE spk = ASN1_TYPE_EMPTY; - if ((result = asn1_create_element - (_gnutls_get_gnutls_asn(), "GNUTLS.DSAPublicKey", - &spk)) != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if ((result = asn1_create_element + (_gnutls_get_gnutls_asn (), "GNUTLS.DSAPublicKey", + &spk)) != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - result = asn1_der_decoding(&spk, der, dersize, NULL); + result = asn1_der_decoding (&spk, der, dersize, NULL); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - asn1_delete_structure(&spk); - return _gnutls_asn2err(result); + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + asn1_delete_structure (&spk); + return _gnutls_asn2err (result); } - /* Read Y */ + /* Read Y */ - if ((result = _gnutls_x509_read_int(spk, "", ¶ms[3])) < 0) { - gnutls_assert(); - asn1_delete_structure(&spk); - return _gnutls_asn2err(result); + if ((result = _gnutls_x509_read_int (spk, "", ¶ms[3])) < 0) + { + gnutls_assert (); + asn1_delete_structure (&spk); + return _gnutls_asn2err (result); } - asn1_delete_structure(&spk); + asn1_delete_structure (&spk); - return 0; + return 0; } /* Extracts DSA and RSA parameters from a certificate. */ -int _gnutls_x509_crt_get_mpis(gnutls_x509_crt_t cert, - mpi_t * params, int *params_size) +int +_gnutls_x509_crt_get_mpis (gnutls_x509_crt_t cert, + mpi_t * params, int *params_size) { - int len, result; - opaque str[5 * 1024]; - int pk_algorithm; - - /* Read the algorithm's OID - */ - pk_algorithm = gnutls_x509_crt_get_pk_algorithm(cert, NULL); - - /* Read the algorithm's parameters - */ - len = sizeof(str); - result = asn1_read_value(cert->cert, - "tbsCertificate.subjectPublicKeyInfo.subjectPublicKey", - str, &len); - len /= 8; - - if (result != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); - } - - switch (pk_algorithm) { + int len, result; + opaque str[5 * 1024]; + int pk_algorithm; + + /* Read the algorithm's OID + */ + pk_algorithm = gnutls_x509_crt_get_pk_algorithm (cert, NULL); + + /* Read the algorithm's parameters + */ + len = sizeof (str); + result = asn1_read_value (cert->cert, + "tbsCertificate.subjectPublicKeyInfo.subjectPublicKey", + str, &len); + len /= 8; + + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); + } + + switch (pk_algorithm) + { case GNUTLS_PK_RSA: - /* params[0] is the modulus, - * params[1] is the exponent - */ - if (*params_size < RSA_PUBLIC_PARAMS) { - gnutls_assert(); - /* internal error. Increase the mpi_ts in params */ - return GNUTLS_E_INTERNAL_ERROR; + /* params[0] is the modulus, + * params[1] is the exponent + */ + if (*params_size < RSA_PUBLIC_PARAMS) + { + gnutls_assert (); + /* internal error. Increase the mpi_ts in params */ + return GNUTLS_E_INTERNAL_ERROR; } - if ((result = _gnutls_x509_read_rsa_params(str, len, params)) < 0) { - gnutls_assert(); - return result; + if ((result = _gnutls_x509_read_rsa_params (str, len, params)) < 0) + { + gnutls_assert (); + return result; } - *params_size = RSA_PUBLIC_PARAMS; + *params_size = RSA_PUBLIC_PARAMS; - return 0; - break; + return 0; + break; case GNUTLS_PK_DSA: - /* params[0] is p, - * params[1] is q, - * params[2] is q, - * params[3] is pub. - */ - - if (*params_size < DSA_PUBLIC_PARAMS) { - gnutls_assert(); - /* internal error. Increase the mpi_ts in params */ - return GNUTLS_E_INTERNAL_ERROR; + /* params[0] is p, + * params[1] is q, + * params[2] is q, + * params[3] is pub. + */ + + if (*params_size < DSA_PUBLIC_PARAMS) + { + gnutls_assert (); + /* internal error. Increase the mpi_ts in params */ + return GNUTLS_E_INTERNAL_ERROR; } - if ((result = _gnutls_x509_read_dsa_pubkey(str, len, params)) < 0) { - gnutls_assert(); - return result; + if ((result = _gnutls_x509_read_dsa_pubkey (str, len, params)) < 0) + { + gnutls_assert (); + return result; } - /* Now read the parameters - */ + /* Now read the parameters + */ - len = sizeof(str); - result = asn1_read_value(cert->cert, - "tbsCertificate.subjectPublicKeyInfo.algorithm.parameters", - str, &len); + len = sizeof (str); + result = asn1_read_value (cert->cert, + "tbsCertificate.subjectPublicKeyInfo.algorithm.parameters", + str, &len); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - if ((result = _gnutls_x509_read_dsa_params(str, len, params)) < 0) { - gnutls_assert(); - return result; + if ((result = _gnutls_x509_read_dsa_params (str, len, params)) < 0) + { + gnutls_assert (); + return result; } - *params_size = DSA_PUBLIC_PARAMS; + *params_size = DSA_PUBLIC_PARAMS; - return 0; - break; + return 0; + break; default: - /* other types like DH - * currently not supported - */ - gnutls_assert(); + /* other types like DH + * currently not supported + */ + gnutls_assert (); - return GNUTLS_E_X509_CERTIFICATE_ERROR; + return GNUTLS_E_X509_CERTIFICATE_ERROR; } } @@ -281,116 +305,132 @@ int _gnutls_x509_crt_get_mpis(gnutls_x509_crt_t cert, * * Allocates the space used to store the DER data. */ -int _gnutls_x509_write_rsa_params(mpi_t * params, int params_size, - gnutls_datum_t * der) +int +_gnutls_x509_write_rsa_params (mpi_t * params, int params_size, + gnutls_datum_t * der) { - int result; - ASN1_TYPE spk = ASN1_TYPE_EMPTY; + int result; + ASN1_TYPE spk = ASN1_TYPE_EMPTY; - der->data = NULL; - der->size = 0; + der->data = NULL; + der->size = 0; - if (params_size < 2) { - gnutls_assert(); - result = GNUTLS_E_INVALID_REQUEST; - goto cleanup; + if (params_size < 2) + { + gnutls_assert (); + result = GNUTLS_E_INVALID_REQUEST; + goto cleanup; } - if ((result = asn1_create_element - (_gnutls_get_gnutls_asn(), "GNUTLS.RSAPublicKey", &spk)) - != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if ((result = asn1_create_element + (_gnutls_get_gnutls_asn (), "GNUTLS.RSAPublicKey", &spk)) + != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - result = _gnutls_x509_write_int(spk, "modulus", params[0], 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_write_int (spk, "modulus", params[0], 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - result = _gnutls_x509_write_int(spk, "publicExponent", params[1], 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_write_int (spk, "publicExponent", params[1], 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - result = _gnutls_x509_der_encode(spk, "", der, 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_der_encode (spk, "", der, 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - asn1_delete_structure(&spk); - return 0; + asn1_delete_structure (&spk); + return 0; - cleanup: - asn1_delete_structure(&spk); +cleanup: + asn1_delete_structure (&spk); - return result; + return result; } /* * This function writes and encodes the parameters for DSS or RSA keys. * This is the "signatureAlgorithm" fields. */ -int _gnutls_x509_write_sig_params(ASN1_TYPE dst, const char *dst_name, - gnutls_pk_algorithm_t pk_algorithm, gnutls_digest_algorithm_t dig, - mpi_t * params, int params_size) +int +_gnutls_x509_write_sig_params (ASN1_TYPE dst, const char *dst_name, + gnutls_pk_algorithm_t pk_algorithm, + gnutls_digest_algorithm_t dig, mpi_t * params, + int params_size) { - gnutls_datum_t der; - int result; - char name[128]; - const char *pk; + gnutls_datum_t der; + int result; + char name[128]; + const char *pk; - _gnutls_str_cpy(name, sizeof(name), dst_name); - _gnutls_str_cat(name, sizeof(name), ".algorithm"); + _gnutls_str_cpy (name, sizeof (name), dst_name); + _gnutls_str_cat (name, sizeof (name), ".algorithm"); - pk = _gnutls_x509_sign_to_oid(pk_algorithm, HASH2MAC(dig)); - if (pk == NULL) { - gnutls_assert(); - return GNUTLS_E_INVALID_REQUEST; + pk = _gnutls_x509_sign_to_oid (pk_algorithm, HASH2MAC (dig)); + if (pk == NULL) + { + gnutls_assert (); + return GNUTLS_E_INVALID_REQUEST; } - /* write the OID. - */ - result = asn1_write_value(dst, name, pk, 1); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + /* write the OID. + */ + result = asn1_write_value (dst, name, pk, 1); + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - _gnutls_str_cpy(name, sizeof(name), dst_name); - _gnutls_str_cat(name, sizeof(name), ".parameters"); + _gnutls_str_cpy (name, sizeof (name), dst_name); + _gnutls_str_cat (name, sizeof (name), ".parameters"); - if (pk_algorithm == GNUTLS_PK_DSA) { - result = _gnutls_x509_write_dsa_params(params, params_size, &der); - if (result < 0) { - gnutls_assert(); - return result; + if (pk_algorithm == GNUTLS_PK_DSA) + { + result = _gnutls_x509_write_dsa_params (params, params_size, &der); + if (result < 0) + { + gnutls_assert (); + return result; } - result = asn1_write_value(dst, name, der.data, der.size); - _gnutls_free_datum(&der); + result = asn1_write_value (dst, name, der.data, der.size); + _gnutls_free_datum (&der); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - } else { /* RSA */ - result = asn1_write_value(dst, name, NULL, 0); - - if (result != ASN1_SUCCESS && result != ASN1_ELEMENT_NOT_FOUND) { - /* Here we ignore the element not found error, since this - * may have been disabled before. - */ - gnutls_assert(); - return _gnutls_asn2err(result); + } + else + { /* RSA */ + result = asn1_write_value (dst, name, NULL, 0); + + if (result != ASN1_SUCCESS && result != ASN1_ELEMENT_NOT_FOUND) + { + /* Here we ignore the element not found error, since this + * may have been disabled before. + */ + gnutls_assert (); + return _gnutls_asn2err (result); } } - return 0; + return 0; } /* @@ -399,58 +439,65 @@ int _gnutls_x509_write_sig_params(ASN1_TYPE dst, const char *dst_name, * * Allocates the space used to store the DER data. */ -int _gnutls_x509_write_dsa_params(mpi_t * params, int params_size, - gnutls_datum_t * der) +int +_gnutls_x509_write_dsa_params (mpi_t * params, int params_size, + gnutls_datum_t * der) { - int result; - ASN1_TYPE spk = ASN1_TYPE_EMPTY; + int result; + ASN1_TYPE spk = ASN1_TYPE_EMPTY; - der->data = NULL; - der->size = 0; + der->data = NULL; + der->size = 0; - if (params_size < 3) { - gnutls_assert(); - result = GNUTLS_E_INVALID_REQUEST; - goto cleanup; + if (params_size < 3) + { + gnutls_assert (); + result = GNUTLS_E_INVALID_REQUEST; + goto cleanup; } - if ((result = asn1_create_element - (_gnutls_get_gnutls_asn(), "GNUTLS.DSAParameters", &spk)) - != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if ((result = asn1_create_element + (_gnutls_get_gnutls_asn (), "GNUTLS.DSAParameters", &spk)) + != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - result = _gnutls_x509_write_int(spk, "p", params[0], 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_write_int (spk, "p", params[0], 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - result = _gnutls_x509_write_int(spk, "q", params[1], 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_write_int (spk, "q", params[1], 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - result = _gnutls_x509_write_int(spk, "g", params[2], 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_write_int (spk, "g", params[2], 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - result = _gnutls_x509_der_encode(spk, "", der, 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_der_encode (spk, "", der, 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - asn1_delete_structure(&spk); - return 0; + asn1_delete_structure (&spk); + return 0; - cleanup: - asn1_delete_structure(&spk); - return result; +cleanup: + asn1_delete_structure (&spk); + return result; } /* @@ -459,46 +506,51 @@ int _gnutls_x509_write_dsa_params(mpi_t * params, int params_size, * * Allocates the space used to store the DER data. */ -int _gnutls_x509_write_dsa_public_key(mpi_t * params, int params_size, - gnutls_datum_t * der) +int +_gnutls_x509_write_dsa_public_key (mpi_t * params, int params_size, + gnutls_datum_t * der) { - int result; - ASN1_TYPE spk = ASN1_TYPE_EMPTY; + int result; + ASN1_TYPE spk = ASN1_TYPE_EMPTY; - der->data = NULL; - der->size = 0; + der->data = NULL; + der->size = 0; - if (params_size < 3) { - gnutls_assert(); - result = GNUTLS_E_INVALID_REQUEST; - goto cleanup; + if (params_size < 3) + { + gnutls_assert (); + result = GNUTLS_E_INVALID_REQUEST; + goto cleanup; } - if ((result = asn1_create_element - (_gnutls_get_gnutls_asn(), "GNUTLS.DSAPublicKey", &spk)) - != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if ((result = asn1_create_element + (_gnutls_get_gnutls_asn (), "GNUTLS.DSAPublicKey", &spk)) + != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - result = _gnutls_x509_write_int(spk, "", params[3], 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_write_int (spk, "", params[3], 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - result = _gnutls_x509_der_encode(spk, "", der, 0); - if (result < 0) { - gnutls_assert(); - goto cleanup; + result = _gnutls_x509_der_encode (spk, "", der, 0); + if (result < 0) + { + gnutls_assert (); + goto cleanup; } - asn1_delete_structure(&spk); - return 0; + asn1_delete_structure (&spk); + return 0; - cleanup: - asn1_delete_structure(&spk); - return result; +cleanup: + asn1_delete_structure (&spk); + return result; } @@ -506,66 +558,71 @@ int _gnutls_x509_write_dsa_public_key(mpi_t * params, int params_size, * from asn1 structs. Combines the read and the convertion * steps. */ -int _gnutls_x509_read_uint(ASN1_TYPE node, const char *value, - unsigned int *ret) +int +_gnutls_x509_read_uint (ASN1_TYPE node, const char *value, unsigned int *ret) { - int len, result; - opaque *tmpstr; + int len, result; + opaque *tmpstr; - len = 0; - result = asn1_read_value(node, value, NULL, &len); - if (result != ASN1_MEM_ERROR) { - gnutls_assert(); - return _gnutls_asn2err(result); + len = 0; + result = asn1_read_value (node, value, NULL, &len); + if (result != ASN1_MEM_ERROR) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - tmpstr = gnutls_alloca(len); - if (tmpstr == NULL) { - gnutls_assert(); - return GNUTLS_E_MEMORY_ERROR; + tmpstr = gnutls_alloca (len); + if (tmpstr == NULL) + { + gnutls_assert (); + return GNUTLS_E_MEMORY_ERROR; } - result = asn1_read_value(node, value, tmpstr, &len); + result = asn1_read_value (node, value, tmpstr, &len); - gnutls_afree(tmpstr); + gnutls_afree (tmpstr); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - if (len == 1) - *ret = tmpstr[0]; - else if (len == 2) - *ret = _gnutls_read_uint16(tmpstr); - else if (len == 3) - *ret = _gnutls_read_uint24(tmpstr); - else if (len == 4) - *ret = _gnutls_read_uint32(tmpstr); - else { - gnutls_assert(); - return GNUTLS_E_INTERNAL_ERROR; + if (len == 1) + *ret = tmpstr[0]; + else if (len == 2) + *ret = _gnutls_read_uint16 (tmpstr); + else if (len == 3) + *ret = _gnutls_read_uint24 (tmpstr); + else if (len == 4) + *ret = _gnutls_read_uint32 (tmpstr); + else + { + gnutls_assert (); + return GNUTLS_E_INTERNAL_ERROR; } - return 0; + return 0; } /* Writes the specified integer into the specified node. */ -int _gnutls_x509_write_uint32(ASN1_TYPE node, const char *value, - uint32 num) +int +_gnutls_x509_write_uint32 (ASN1_TYPE node, const char *value, uint32 num) { - opaque tmpstr[4]; - int result; + opaque tmpstr[4]; + int result; - _gnutls_write_uint32(num, tmpstr); + _gnutls_write_uint32 (num, tmpstr); - result = asn1_write_value(node, value, tmpstr, 4); + result = asn1_write_value (node, value, tmpstr, 4); - if (result != ASN1_SUCCESS) { - gnutls_assert(); - return _gnutls_asn2err(result); + if (result != ASN1_SUCCESS) + { + gnutls_assert (); + return _gnutls_asn2err (result); } - return 0; + return 0; } |