List of usage examples for org.bouncycastle.crypto.params RSAPrivateCrtKeyParameters getDP
public BigInteger getDP()
From source file:co.lqnt.lockbox.key.KeyFactory.java
License:Open Source License
/** * Generate a new private key.//from ww w .ja va 2s . c o m * * @param size The size of the key in bits. * * @return The private key. */ public PrivateKey generatePrivateKey(final int size) { this.keyGenerator().init(new RSAKeyGenerationParameters(BigInteger.valueOf(65537), this.random().jceSecureRandom(), size, 80)); AsymmetricKeyParameter keyParameters = this.keyGenerator().generateKeyPair().getPrivate(); RSAPrivateCrtKeyParameters rsaKeyParameters; if (keyParameters instanceof RSAPrivateCrtKeyParameters) { rsaKeyParameters = (RSAPrivateCrtKeyParameters) keyParameters; } else { throw new RuntimeException("Invalid key pair generated by Bouncy Castle."); } return new PrivateKey(rsaKeyParameters.getModulus(), rsaKeyParameters.getPublicExponent(), rsaKeyParameters.getExponent(), rsaKeyParameters.getP(), rsaKeyParameters.getQ(), rsaKeyParameters.getDP(), rsaKeyParameters.getDQ(), rsaKeyParameters.getQInv()); }
From source file:co.lqnt.lockbox.key.KeyFactory.java
License:Open Source License
/** * Convert Bouncy Castle private key info to a Lockbox private key. * * @param keyInformation The private key information. * * @return The private key.//from ww w .ja v a 2s .c o m * @throws PrivateKeyReadException If reading of the private key fails. */ protected PrivateKey convertPrivateKey(final PrivateKeyInfo keyInformation) throws PrivateKeyReadException { AsymmetricKeyParameter keyParameter; try { keyParameter = this.bcKeyParametersFactory().createPrivateKeyParameters(keyInformation); } catch (IOException e) { throw new PrivateKeyReadException(e); } RSAPrivateCrtKeyParameters privateKeyParameters; if (keyParameter instanceof RSAPrivateCrtKeyParameters) { privateKeyParameters = (RSAPrivateCrtKeyParameters) keyParameter; } else { throw new PrivateKeyReadException(); } return new PrivateKey(privateKeyParameters.getModulus(), privateKeyParameters.getPublicExponent(), privateKeyParameters.getExponent(), privateKeyParameters.getP(), privateKeyParameters.getQ(), privateKeyParameters.getDP(), privateKeyParameters.getDQ(), privateKeyParameters.getQInv()); }
From source file:com.foilen.smalltools.crypt.bouncycastle.asymmetric.RSACrypt.java
License:Open Source License
@Override public RSAKeyDetails retrieveKeyDetails(AsymmetricKeys keyPair) { RSAKeyDetails rsaKeyDetails = new RSAKeyDetails(); try {// ww w . ja v a2 s.c o m // Public key if (keyPair.getPublicKey() != null) { AsymmetricKeyParameter key = keyPair.getPublicKey(); if (!(key instanceof RSAKeyParameters)) { throw new SmallToolsException( "The public key is not of type RSAKeyParameters. Type is " + key.getClass().getName()); } RSAKeyParameters rsaKey = (RSAKeyParameters) key; rsaKeyDetails.setModulus(rsaKey.getModulus()); rsaKeyDetails.setPublicExponent(rsaKey.getExponent()); } // Private key if (keyPair.getPrivateKey() != null) { AsymmetricKeyParameter key = keyPair.getPrivateKey(); if (!(key instanceof RSAKeyParameters)) { throw new SmallToolsException( "The private key is not of type RSAKeyParameters. Type is " + key.getClass().getName()); } RSAKeyParameters rsaKeyParameters = (RSAKeyParameters) key; rsaKeyDetails.setModulus(rsaKeyParameters.getModulus()); rsaKeyDetails.setPrivateExponent(rsaKeyParameters.getExponent()); // CRT parameters if (key instanceof RSAPrivateCrtKeyParameters) { RSAPrivateCrtKeyParameters rsaPrivateCrtKeyParameters = (RSAPrivateCrtKeyParameters) key; rsaKeyDetails.setCrt(true); rsaKeyDetails.setPrimeP(rsaPrivateCrtKeyParameters.getP()); rsaKeyDetails.setPrimeQ(rsaPrivateCrtKeyParameters.getQ()); rsaKeyDetails.setPrimeExponentP(rsaPrivateCrtKeyParameters.getDP()); rsaKeyDetails.setPrimeExponentQ(rsaPrivateCrtKeyParameters.getDQ()); rsaKeyDetails.setCrtCoefficient(rsaPrivateCrtKeyParameters.getQInv()); } } return rsaKeyDetails; } catch (SmallToolsException e) { throw e; } catch (Exception e) { throw new SmallToolsException("Could not retrieve the details", e); } }
From source file:com.foilen.smalltools.crypt.bouncycastle.cert.RSATools.java
License:Open Source License
/** * Create a {@link Key} from the private {@link AsymmetricKeys}. * * @param asymmetricKeys//from w w w .ja v a2 s .c o m * the asymmetric keys * @return the Java key */ public static PrivateKey createPrivateKey(AsymmetricKeys asymmetricKeys) { try { KeyFactory keyFactory = KeyFactory.getInstance("RSA"); RSAPrivateCrtKeyParameters privateKeyParameters = (RSAPrivateCrtKeyParameters) asymmetricKeys .getPrivateKey(); RSAPrivateCrtKeySpec keySpec = new RSAPrivateCrtKeySpec(privateKeyParameters.getModulus(), privateKeyParameters.getPublicExponent(), privateKeyParameters.getExponent(), privateKeyParameters.getP(), privateKeyParameters.getQ(), privateKeyParameters.getDP(), privateKeyParameters.getDQ(), privateKeyParameters.getQInv()); return keyFactory.generatePrivate(keySpec); } catch (Exception e) { throw new SmallToolsException("Problem generating the key", e); } }
From source file:com.joyent.http.signature.crypto.MantaNativeRSACoreEngine.java
License:Apache License
/** * initialise the RSA engine.//from ww w.j av a 2 s.c om * * @param forEncryption true if we are encrypting, false otherwise. * @param param the necessary RSA key parameters. */ public void init(boolean forEncryption, CipherParameters param) { if (param instanceof ParametersWithRandom) { ParametersWithRandom rParam = (ParametersWithRandom) param; key = (RSAKeyParameters) rParam.getParameters(); } else { key = (RSAKeyParameters) param; } this.forEncryption = forEncryption; if (key instanceof RSAPrivateCrtKeyParameters) { isPrivate = true; // // we have the extra factors, use the Chinese Remainder Theorem - the author // wishes to express his thanks to Dirk Bonekaemper at rtsffm.com for // advice regarding the expression of this. // RSAPrivateCrtKeyParameters crtKey = (RSAPrivateCrtKeyParameters) key; p = new GmpInteger(crtKey.getP()); q = new GmpInteger(crtKey.getQ()); dP = new GmpInteger(crtKey.getDP()); dQ = new GmpInteger(crtKey.getDQ()); qInv = crtKey.getQInv(); exponent = modulus = null; } else { isPrivate = false; exponent = new GmpInteger(key.getExponent()); modulus = new GmpInteger(key.getModulus()); isSmallExponent = exponent.bitLength() < 64; p = q = dP = dQ = null; qInv = null; } }
From source file:de.r2soft.empires.framework.security.CertificateUtil.java
License:Open Source License
/** * Generate an RSA private key//from w w w. ja va 2 s.c o m * * @param cipherParameters * @param cipherParameters2 * @return * @throws InvalidKeySpecException * @throws NoSuchAlgorithmException */ private PrivateKey generatePrivateKey(CipherParameters cipherParameters, CipherParameters cipherParameters2) throws InvalidKeySpecException, NoSuchAlgorithmException { RSAPrivateCrtKeyParameters privateKeyParameters = (RSAPrivateCrtKeyParameters) cipherParameters; RSAKeyParameters publicKeyParameters = (RSAKeyParameters) cipherParameters2; RSAPrivateCrtKeySpec rsaPrivateKeySpec = new RSAPrivateCrtKeySpec(publicKeyParameters.getModulus(), publicKeyParameters.getExponent(), privateKeyParameters.getExponent(), privateKeyParameters.getP(), privateKeyParameters.getQ(), privateKeyParameters.getDP(), privateKeyParameters.getDQ(), privateKeyParameters.getQInv()); return KeyFactory.getInstance("RSA").generatePrivate(rsaPrivateKeySpec); }
From source file:dorkbox.util.crypto.CryptoRSA.java
License:Apache License
@SuppressWarnings("RedundantIfStatement") public static boolean compare(RSAPrivateCrtKeyParameters private1, RSAPrivateCrtKeyParameters private2) { if (!private1.getModulus().equals(private2.getModulus())) { return false; }//from www . jav a 2 s . c o m if (!private1.getExponent().equals(private2.getExponent())) { return false; } if (!private1.getDP().equals(private2.getDP())) { return false; } if (!private1.getDQ().equals(private2.getDQ())) { return false; } if (!private1.getP().equals(private2.getP())) { return false; } if (!private1.getPublicExponent().equals(private2.getPublicExponent())) { return false; } if (!private1.getQ().equals(private2.getQ())) { return false; } if (!private1.getQInv().equals(private2.getQInv())) { return false; } return true; }
From source file:dorkbox.util.serialization.RsaPrivateKeySerializer.java
License:Apache License
@Override public void write(Kryo kryo, Output output, RSAPrivateCrtKeyParameters key) { byte[] bytes; int length;// w ww . j av a 2s .com ///////////// bytes = key.getDP().toByteArray(); length = bytes.length; output.writeInt(length, true); output.writeBytes(bytes, 0, length); ///////////// bytes = key.getDQ().toByteArray(); length = bytes.length; output.writeInt(length, true); output.writeBytes(bytes, 0, length); ///////////// bytes = key.getExponent().toByteArray(); length = bytes.length; output.writeInt(length, true); output.writeBytes(bytes, 0, length); ///////////// bytes = key.getModulus().toByteArray(); length = bytes.length; output.writeInt(length, true); output.writeBytes(bytes, 0, length); ///////////// bytes = key.getP().toByteArray(); length = bytes.length; output.writeInt(length, true); output.writeBytes(bytes, 0, length); ///////////// bytes = key.getPublicExponent().toByteArray(); length = bytes.length; output.writeInt(length, true); output.writeBytes(bytes, 0, length); ///////////// bytes = key.getQ().toByteArray(); length = bytes.length; output.writeInt(length, true); output.writeBytes(bytes, 0, length); ///////////// bytes = key.getQInv().toByteArray(); length = bytes.length; output.writeInt(length, true); output.writeBytes(bytes, 0, length); }
From source file:frost.crypt.FrostCrypt.java
License:Open Source License
/** * Generate a new RSA 1024 bit key pair. * @returns String[0] is private key; String[1] is public key *//*from w w w . jav a 2 s. c o m*/ public synchronized String[] generateKeys() { RSAKeyPairGenerator keygen = new RSAKeyPairGenerator(); keygen.init(new RSAKeyGenerationParameters( new BigInteger("3490529510847650949147849619903898133417764638493387843990820577"), getSecureRandom(), 1024, 80)); //this big integer is the winner of some competition as far as I remember AsymmetricCipherKeyPair keys = keygen.generateKeyPair(); //extract the keys RSAKeyParameters pubKey = (RSAKeyParameters) keys.getPublic(); RSAPrivateCrtKeyParameters privKey = (RSAPrivateCrtKeyParameters) keys.getPrivate(); //the return value String[] result = new String[2]; StringBuffer temp = new StringBuffer(); //create the keys temp.append(new String(Base64.encode(pubKey.getExponent().toByteArray()))); temp.append(":"); temp.append(new String(Base64.encode(pubKey.getModulus().toByteArray()))); result[1] = temp.toString(); // public key //rince and repeat, this time exactly the way its done in the constructor temp = new StringBuffer(); temp.append(new String(Base64.encode(privKey.getModulus().toByteArray()))); temp.append(":"); temp.append(new String(Base64.encode(privKey.getPublicExponent().toByteArray()))); temp.append(":"); temp.append(new String(Base64.encode(privKey.getExponent().toByteArray()))); temp.append(":"); temp.append(new String(Base64.encode(privKey.getP().toByteArray()))); temp.append(":"); temp.append(new String(Base64.encode(privKey.getQ().toByteArray()))); temp.append(":"); temp.append(new String(Base64.encode(privKey.getDP().toByteArray()))); temp.append(":"); temp.append(new String(Base64.encode(privKey.getDQ().toByteArray()))); temp.append(":"); temp.append(new String(Base64.encode(privKey.getQInv().toByteArray()))); result[0] = temp.toString(); // private key return result; }
From source file:org.jcryptool.visual.jctca.listeners.CreateCertListener.java
License:Open Source License
/** * generates a new Key Pair for the user with the information provided in the other fields *///ww w . j a v a 2s . com private void generateNewRSAKeyPair() { RSAKeyPairGenerator gen = new RSAKeyPairGenerator(); SecureRandom sr = new SecureRandom(); gen.init(new RSAKeyGenerationParameters(BigInteger.valueOf(3), sr, 1024, 80)); AsymmetricCipherKeyPair keypair = gen.generateKeyPair(); RSAKeyParameters publicKey = (RSAKeyParameters) keypair.getPublic(); RSAPrivateCrtKeyParameters privateKey = (RSAPrivateCrtKeyParameters) keypair.getPrivate(); try { // JCE format needed for the certificate - because // getEncoded() is necessary... PublicKey pubKey = KeyFactory.getInstance("RSA")//$NON-NLS-1$ .generatePublic(new RSAPublicKeySpec(publicKey.getModulus(), publicKey.getExponent())); // and this one for the KeyStore PrivateKey privKey = KeyFactory.getInstance("RSA")//$NON-NLS-1$ .generatePrivate(new RSAPrivateCrtKeySpec(publicKey.getModulus(), publicKey.getExponent(), privateKey.getExponent(), privateKey.getP(), privateKey.getQ(), privateKey.getDP(), privateKey.getDQ(), privateKey.getQInv())); String name = txt_first_name.getText() + " " //$NON-NLS-1$ + txt_last_name.getText(); KeyStoreAlias privAlias = new KeyStoreAlias(name, KeyType.KEYPAIR_PRIVATE_KEY, "RSA", 1024, //$NON-NLS-1$ (name.concat(privKey.toString())).hashCode() + " ", //$NON-NLS-1$ privKey.getClass().getName()); KeyStoreAlias pubAlias = new KeyStoreAlias(name, KeyType.KEYPAIR_PUBLIC_KEY, "RSA", 1024, //$NON-NLS-1$ (name.concat(privKey.toString())).hashCode() + " ", //$NON-NLS-1$ pubKey.getClass().getName()); mng.addKeyPair(privKey, CertificateFactory.createJCrypToolCertificate(pubKey), KeyStoreManager.KEY_PASSWORD, privAlias, pubAlias); String entry = pubAlias.getContactName() + " (Hash: " + Util.formatHash(pubAlias.getHashValue()) + ")";//$NON-NLS-1$ //$NON-NLS-2$ cmb_keys.add(entry); cmb_keys.getParent().layout(); cmb_keys.select(cmb_keys.getItemCount() - 1); cmb_keys.setData(entry, pubAlias); } catch (InvalidKeySpecException e) { LogUtil.logError(e); } catch (NoSuchAlgorithmException e) { LogUtil.logError(e); } }