use of java.security.spec.RSAPublicKeySpec in project robovm by robovm.
the class RSAPublicKeySpecTest method testRSAPublicKeySpec02.
/**
* Test #2 for <code>RSAPublicKeySpec</code> constructor
* Assertion: Constructs <code>RSAPublicKeySpec</code>
* object using valid parameters
*/
public final void testRSAPublicKeySpec02() {
KeySpec ks = new RSAPublicKeySpec(null, null);
assertTrue(ks instanceof RSAPublicKeySpec);
}
use of java.security.spec.RSAPublicKeySpec in project robovm by robovm.
the class SignatureTest method testSign_SHA384withRSA_Key_Success.
public void testSign_SHA384withRSA_Key_Success() throws Exception {
KeyFactory kf = KeyFactory.getInstance("RSA");
RSAPrivateKeySpec keySpec = new RSAPrivateKeySpec(RSA_2048_modulus, RSA_2048_privateExponent);
PrivateKey privKey = kf.generatePrivate(keySpec);
Signature sig = Signature.getInstance("SHA384withRSA");
sig.initSign(privKey);
sig.update(Vector2Data);
byte[] signature = sig.sign();
assertNotNull("Signature must not be null", signature);
assertTrue("Signature should match expected", Arrays.equals(signature, SHA384withRSA_Vector2Signature));
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(RSA_2048_modulus, RSA_2048_publicExponent);
PublicKey pubKey = kf.generatePublic(pubKeySpec);
sig.initVerify(pubKey);
sig.update(Vector2Data);
assertTrue("Signature must verify correctly", sig.verify(signature));
}
use of java.security.spec.RSAPublicKeySpec in project robovm by robovm.
the class SignatureTest method testVerify_NONEwithRSA_Key_SignatureTooLarge_Failure.
public void testVerify_NONEwithRSA_Key_SignatureTooLarge_Failure() throws Exception {
KeyFactory kf = KeyFactory.getInstance("RSA");
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(RSA_2048_modulus, RSA_2048_publicExponent);
PublicKey pubKey = kf.generatePublic(pubKeySpec);
Signature sig = Signature.getInstance("NONEwithRSA");
sig.initVerify(pubKey);
sig.update(Vector1Data);
byte[] invalidSignature = new byte[NONEwithRSA_Vector1Signature.length * 2];
System.arraycopy(NONEwithRSA_Vector1Signature, 0, invalidSignature, 0, NONEwithRSA_Vector1Signature.length);
System.arraycopy(NONEwithRSA_Vector1Signature, 0, invalidSignature, NONEwithRSA_Vector1Signature.length, NONEwithRSA_Vector1Signature.length);
try {
sig.verify(invalidSignature);
fail("Should throw exception when signature is too large");
} catch (SignatureException expected) {
}
}
use of java.security.spec.RSAPublicKeySpec in project robovm by robovm.
the class SignatureTest method testSign_SHA256withRSA_Key_Success.
public void testSign_SHA256withRSA_Key_Success() throws Exception {
KeyFactory kf = KeyFactory.getInstance("RSA");
RSAPrivateKeySpec keySpec = new RSAPrivateKeySpec(RSA_2048_modulus, RSA_2048_privateExponent);
final PrivateKey privKey = kf.generatePrivate(keySpec);
Signature sig = Signature.getInstance("SHA256withRSA");
sig.initSign(privKey);
sig.update(Vector2Data);
byte[] signature = sig.sign();
assertNotNull("Signature must not be null", signature);
assertTrue("Signature should match expected", Arrays.equals(signature, SHA256withRSA_Vector2Signature));
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(RSA_2048_modulus, RSA_2048_publicExponent);
PublicKey pubKey = kf.generatePublic(pubKeySpec);
sig.initVerify(pubKey);
sig.update(Vector2Data);
assertTrue("Signature must verify correctly", sig.verify(signature));
}
use of java.security.spec.RSAPublicKeySpec in project robovm by robovm.
the class SignatureTest method testSign_SHA1withRSA_CrtKeyWithPublicExponent_Success.
public void testSign_SHA1withRSA_CrtKeyWithPublicExponent_Success() throws Exception {
KeyFactory kf = KeyFactory.getInstance("RSA");
RSAPrivateCrtKeySpec keySpec = new RSAPrivateCrtKeySpec(RSA_2048_modulus, RSA_2048_publicExponent, RSA_2048_privateExponent, null, null, null, null, null);
// The RI fails on this key which is totally unreasonable.
final PrivateKey privKey;
try {
privKey = kf.generatePrivate(keySpec);
} catch (NullPointerException e) {
if (StandardNames.IS_RI) {
return;
} else {
fail("Private key should be created");
return;
}
}
Signature sig = Signature.getInstance("SHA1withRSA");
sig.initSign(privKey);
sig.update(Vector1Data);
byte[] signature = sig.sign();
assertNotNull("Signature must not be null", signature);
assertTrue("Signature should match expected", Arrays.equals(signature, SHA1withRSA_Vector1Signature));
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(RSA_2048_modulus, RSA_2048_publicExponent);
PublicKey pubKey = kf.generatePublic(pubKeySpec);
sig.initVerify(pubKey);
sig.update(Vector1Data);
assertTrue("Signature must verify correctly", sig.verify(signature));
}
Aggregations