protected void engineInit( int opmode, Key key, AlgorithmParameters params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException { AlgorithmParameterSpec paramSpec = null; if (params != null) { try { paramSpec = params.getParameterSpec(OAEPParameterSpec.class); } catch (InvalidParameterSpecException e) { throw new InvalidAlgorithmParameterException("cannot recognise parameters: " + e.toString(), e); } } engineParams = params; engineInit(opmode, key, paramSpec, random); }
protected AlgorithmParameters engineGetParameters() { if (spec != null && spec instanceof OAEPParameterSpec) { try { AlgorithmParameters params = AlgorithmParameters.getInstance("OAEP", SunJCE.getInstance()); params.init(spec); return params; } catch (NoSuchAlgorithmException nsae) { // should never happen throw new RuntimeException("Cannot find OAEP " + " AlgorithmParameters implementation in SunJCE provider"); } catch (InvalidParameterSpecException ipse) { // should never happen throw new RuntimeException("OAEPParameterSpec not supported"); } } else { return null; } }
protected void engineInit(int opmode, Key key, AlgorithmParameters params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException { if (params == null) { init(opmode, key, random, null); } else { try { OAEPParameterSpec spec = params.getParameterSpec(OAEPParameterSpec.class); init(opmode, key, random, spec); } catch (InvalidParameterSpecException ipse) { InvalidAlgorithmParameterException iape = new InvalidAlgorithmParameterException("Wrong parameter"); iape.initCause(ipse); throw iape; } } }
private static boolean runTest(String mdName, MGF1ParameterSpec mgfSpec, byte[] p) throws Exception { OAEPParameterSpec spec = new OAEPParameterSpec(mdName, "MGF1", mgfSpec, new PSource.PSpecified(p)); cp = Security.getProvider("SunJCE"); System.out.println("Testing provider " + cp.getName() + "..."); AlgorithmParameters ap = AlgorithmParameters.getInstance("OAEP", cp); ap.init(spec); byte[] encoding = ap.getEncoded(); AlgorithmParameters ap2 = AlgorithmParameters.getInstance("OAEP", cp); ap2.init(encoding); OAEPParameterSpec spec2 = (OAEPParameterSpec) ap2.getParameterSpec (OAEPParameterSpec.class); return compareSpec(spec, spec2); }
private static boolean compareMGF(OAEPParameterSpec s1, OAEPParameterSpec s2) { String alg1 = s1.getMGFAlgorithm(); String alg2 = s2.getMGFAlgorithm(); if (alg1.equals(alg2)) { MGF1ParameterSpec mp1 = (MGF1ParameterSpec)s1.getMGFParameters(); MGF1ParameterSpec mp2 = (MGF1ParameterSpec)s2.getMGFParameters(); alg1 = mp1.getDigestAlgorithm(); alg2 = mp2.getDigestAlgorithm(); if (alg1.equals(alg2)) { return true; } else { System.out.println("MGF's MD algos: " + alg1 + " vs " + alg2); return false; } } else { System.out.println("MGF algos: " + alg1 + " vs " + alg2); return false; } }
@Override protected void engineInit( int opmode, Key key, AlgorithmParameters params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException { OAEPParameterSpec spec = null; if (params != null) { try { spec = params.getParameterSpec(OAEPParameterSpec.class); } catch (InvalidParameterSpecException e) { throw new InvalidAlgorithmParameterException( "Only OAEP parameters are supported", e); } } engineInitInternal(opmode, key, spec); }
@Override void doCryptoInit(AlgorithmParameterSpec spec) throws InvalidAlgorithmParameterException, InvalidKeyException { pkeyCtx = new NativeRef.EVP_PKEY_CTX(encrypting ? NativeCrypto.EVP_PKEY_encrypt_init(key.getNativeRef()) : NativeCrypto.EVP_PKEY_decrypt_init(key.getNativeRef())); if (spec instanceof OAEPParameterSpec) { readOAEPParameters((OAEPParameterSpec) spec); } NativeCrypto.EVP_PKEY_CTX_set_rsa_padding( pkeyCtx.context, NativeConstants.RSA_PKCS1_OAEP_PADDING); NativeCrypto.EVP_PKEY_CTX_set_rsa_oaep_md(pkeyCtx.context, oaepMd); NativeCrypto.EVP_PKEY_CTX_set_rsa_mgf1_md(pkeyCtx.context, mgf1Md); if (label != null && label.length > 0) { NativeCrypto.EVP_PKEY_CTX_set_rsa_oaep_label(pkeyCtx.context, label); } }
/** * getDigestAlgorithm() method testing. */ @TestTargetNew( level = TestLevel.COMPLETE, notes = "", method = "getDigestAlgorithm", args = {} ) public void testGetDigestAlgorithm() { String mdName = "SHA-1"; String mgfName = "MGF1"; AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1; PSource pSrc = PSource.PSpecified.DEFAULT; OAEPParameterSpec ps = new OAEPParameterSpec(mdName, mgfName, mgfSpec, pSrc); assertTrue("The returned value does not equal to the " + "value specified in the constructor.", ps.getDigestAlgorithm().equals(mdName)); }
/** * getMGFAlgorithm() method testing. */ @TestTargetNew( level = TestLevel.COMPLETE, notes = "", method = "getMGFAlgorithm", args = {} ) public void testGetMGFAlgorithm() { String mdName = "SHA-1"; String mgfName = "MGF1"; AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1; PSource pSrc = PSource.PSpecified.DEFAULT; OAEPParameterSpec ps = new OAEPParameterSpec(mdName, mgfName, mgfSpec, pSrc); assertTrue("The returned value does not equal to the " + "value specified in the constructor.", ps.getMGFAlgorithm().equals(mgfName)); }
/** * getMGFParameters() method testing. */ @TestTargetNew( level = TestLevel.COMPLETE, notes = "", method = "getMGFParameters", args = {} ) public void testGetMGFParameters() { String mdName = "SHA-1"; String mgfName = "MGF1"; AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1; PSource pSrc = PSource.PSpecified.DEFAULT; OAEPParameterSpec ps = new OAEPParameterSpec(mdName, mgfName, mgfSpec, pSrc); assertTrue("The returned value does not equal to the " + "value specified in the constructor.", ps.getMGFParameters() == mgfSpec); }
/** * getPSource() method testing. */ @TestTargetNew( level = TestLevel.COMPLETE, notes = "", method = "getPSource", args = {} ) public void testGetPSource() { String mdName = "SHA-1"; String mgfName = "MGF1"; AlgorithmParameterSpec mgfSpec = MGF1ParameterSpec.SHA1; PSource pSrc = PSource.PSpecified.DEFAULT; OAEPParameterSpec ps = new OAEPParameterSpec(mdName, mgfName, mgfSpec, pSrc); assertTrue("The returned value does not equal to the " + "value specified in the constructor.", ps.getPSource() == pSrc); }
protected void engineInit(int opmode, Key key, AlgorithmParameters params, SecureRandom random) throws InvalidKeyException, InvalidAlgorithmParameterException { if (params == null) { init(opmode, key, random, null); } else { try { OAEPParameterSpec spec = (OAEPParameterSpec) params.getParameterSpec(OAEPParameterSpec.class); init(opmode, key, random, spec); } catch (InvalidParameterSpecException ipse) { InvalidAlgorithmParameterException iape = new InvalidAlgorithmParameterException("Wrong parameter"); iape.initCause(ipse); throw iape; } } }