android: Add support for signature schemes used by EAP-TLS
This commit is contained in:
@@ -68,6 +68,9 @@ METHOD(private_key_t, sign, bool,
|
||||
case KEY_RSA:
|
||||
switch (scheme)
|
||||
{
|
||||
case SIGN_RSA_EMSA_PKCS1_NULL:
|
||||
method = "NONEwithRSA";
|
||||
break;
|
||||
case SIGN_RSA_EMSA_PKCS1_MD5:
|
||||
method = "MD5withRSA";
|
||||
break;
|
||||
@@ -93,12 +96,18 @@ METHOD(private_key_t, sign, bool,
|
||||
case KEY_ECDSA:
|
||||
switch (scheme)
|
||||
{
|
||||
case SIGN_ECDSA_WITH_SHA1_DER:
|
||||
method = "SHA1withECDSA";
|
||||
break;
|
||||
case SIGN_ECDSA_WITH_SHA256_DER:
|
||||
case SIGN_ECDSA_256:
|
||||
method = "SHA256withECDSA";
|
||||
break;
|
||||
case SIGN_ECDSA_WITH_SHA384_DER:
|
||||
case SIGN_ECDSA_384:
|
||||
method = "SHA384withECDSA";
|
||||
break;
|
||||
case SIGN_ECDSA_WITH_SHA512_DER:
|
||||
case SIGN_ECDSA_521:
|
||||
method = "SHA512withECDSA";
|
||||
break;
|
||||
@@ -189,7 +198,8 @@ METHOD(private_key_t, sign, bool,
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (len)
|
||||
{
|
||||
/* we get an ASN.1 encoded sequence of integers r and s */
|
||||
parse = encoded = chunk_from_byte_array(env, jsigarray);
|
||||
if (asn1_unwrap(&parse, &parse) != ASN1_SEQUENCE ||
|
||||
@@ -218,6 +228,11 @@ METHOD(private_key_t, sign, bool,
|
||||
{
|
||||
*signature = chunk_from_byte_array(env, jsigarray);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*signature = chunk_from_byte_array(env, jsigarray);
|
||||
}
|
||||
androidjni_detach_thread();
|
||||
return TRUE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user