List of usage examples for org.bouncycastle.jce.provider BouncyCastleProvider BouncyCastleProvider
public BouncyCastleProvider()
From source file:ch.lamacrypt.Main.java
License:Open Source License
public static void main(String args[]) throws Exception { if (Settings.getMaxRAM() + 256 * (int) Math.pow(2, 20) < 6 * (int) Math.pow(2, 30)) { ErrorHandler.showError("your system doesn't have enough memory (min. 6GiB)."); } else {// w w w .ja v a 2 s .c om // adding Bouncy Castle as provider Security.addProvider(new BouncyCastleProvider()); // overriding the default TrustStore System.setProperty("javax.net.ssl.trustStore", "LamaCryptTrustStore"); System.setProperty("javax.net.ssl.trustStorePassword", "LCTSPW"); // try to remove restrictions on cryptographic key lengths removeCryptographyRestrictions(); // getting the config file and checking if the TOS have been agreed to File config = new File("desktop-client.conf"); if (config.exists()) { Scanner in = new Scanner(new FileReader(config)); while (in.hasNext()) { String tmpStr = in.next(); if (tmpStr.startsWith("scryptfactor")) { int N = Integer.parseInt(tmpStr.substring(13, 15)); DefaultCipher.setScryptFactor(N); Settings.setStartupScryptN(N); } else if (tmpStr.startsWith("agreedTOS")) { Settings.setTOSAgreed(tmpStr.contains("yes")); } } in.close(); Settings.setIsNew(false); } else { config.createNewFile(); Settings.setIsNew(true); } if (Settings.isTOSAgreed()) { // starting GUI LoginForm.main(null); } else { TOSDisclaimer.main(null); } } }
From source file:ch.thomasmueller.saltyfiles.transformer.Transformer.java
License:Open Source License
/** * Creates an new instance using the given password. * /*from w w w. j a va 2s.c o m*/ * @param pwd * the password to be used * @param salt * random byte array */ public Transformer(char[] aPassoword, byte[] someSalt) { password = aPassoword; salt = someSalt; Security.addProvider(new BouncyCastleProvider()); }
From source file:chat.menu.CryptMenu.java
License:Open Source License
public CryptMenu(final chat.Gui mainFrame) { super("Crypt"); addProvider(new BouncyCastleProvider()); this.mainFrame = mainFrame; secureChannel.setEnabled(false);//from w ww .j a v a 2 s . c o m add(secureChannel); secureChannel.addActionListener(mainFrame); add(keyStorePassword); keyStorePassword.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new PwdDialog(mainFrame); } class PwdDialog extends PasswordDialog { public PwdDialog(JFrame parent) { super(parent); } @Override public void doClose() { if (pwdField.getPassword().length > 0) { State.password = pwdField.getPassword(); keyStorePassword.setEnabled(false); generateKeyStore.setEnabled(true); loadKeyStore.setEnabled(true); } super.doClose(); } } }); generateKeyStore.setEnabled(false); add(generateKeyStore); generateKeyStore.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { System.out.println("Initializing the KeyPairGenerator..."); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "BC"); kpg.initialize(asymmetricStrength, new SecureRandom()); System.out.println("Generating the key pair..."); KeyPair pair = kpg.genKeyPair(); Map<String, Key> keyStore = new HashMap<String, Key>(); keyStore.put("myPrivateKey", pair.getPrivate()); keyStore.put("myPublicKey", pair.getPublic()); saveKeyStore(keyStore); } catch (Exception exc) { exc.printStackTrace(); } } }); loadKeyStore.setEnabled(false); add(loadKeyStore); loadKeyStore.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { Cipher cipher = CryptMenu.getBlockCiphers()[1]; cipher.init(Cipher.DECRYPT_MODE, State.getKeyFromPassword()); CipherInputStream cis = new CipherInputStream(new FileInputStream("jschat.keyStore"), cipher); ObjectInput in = new ObjectInputStream(cis); State.keyStore = (Map<String, Key>) in.readObject(); in.close(); privateKey = State.keyStore.get("myPrivateKey"); exportPublicKey.setEnabled(true); importPublicKey.setEnabled(true); loadPublicKeyFromKS.setEnabled(true); } catch (Exception exc) { exc.printStackTrace(); } } }); loadPublicKeyFromKS.setEnabled(false); add(loadPublicKeyFromKS); loadPublicKeyFromKS.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new SelKeyDialog(mainFrame, State.keyStore.keySet().toArray(new String[] {})); } class SelKeyDialog extends SelectKeyDialog { public SelKeyDialog(JFrame parent, String[] list) { super(parent, list); } @Override public void doClose() { String selectedItem = (String) jComboBox.getSelectedItem(); if (selectedItem != null) { publicKey = State.keyStore.get(selectedItem); if (privateKey != null) { mainFrame.localKeysLoaded(); secureChannel.setEnabled(true); } encryptPubFile.setEnabled(true); decryptPubFile.setEnabled(true); } super.doClose(); } } }); exportPublicKey.setEnabled(false); add(exportPublicKey); exportPublicKey.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("public.key")); out.writeObject(State.keyStore.get("myPublicKey")); out.close(); } catch (Exception exc) { exc.printStackTrace(); } } }); importPublicKey.setEnabled(false); add(importPublicKey); importPublicKey.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); fc.setDialogTitle("Load Public Key"); int returnValue = fc.showOpenDialog(mainFrame.getContentPane()); if (returnValue == JFileChooser.APPROVE_OPTION) { try { ObjectInputStream in = new ObjectInputStream(new FileInputStream(fc.getSelectedFile())); publicKey = (Key) in.readObject(); in.close(); State.keyStore.put(fc.getSelectedFile().getName(), publicKey); saveKeyStore(State.keyStore); } catch (Exception exc) { exc.printStackTrace(); } } } catch (Exception exc) { exc.printStackTrace(); } } }); addSeparator(); encryptPrivFile.setEnabled(false); add(encryptPrivFile); encryptPrivFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { enCodeIt("RSA", true, privateKey); } }); decryptPrivFile.setEnabled(false); add(decryptPrivFile); decryptPrivFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { enCodeIt("RSA", false, privateKey); } }); encryptPubFile.setEnabled(false); add(encryptPubFile); encryptPubFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { enCodeIt("RSA", true, publicKey); } }); decryptPubFile.setEnabled(false); add(decryptPubFile); decryptPubFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { enCodeIt("RSA", false, publicKey); } }); addSeparator(); add(generateSKey); generateSKey.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); fc.setDialogTitle("Save symmetric key as"); int returnValue = fc.showSaveDialog(mainFrame.getContentPane()); if (returnValue == JFileChooser.APPROVE_OPTION) { try { KeyGenerator generator = KeyGenerator.getInstance("AES", "BC"); generator.init(symmetricStrength, new SecureRandom()); symmetricKey = generator.generateKey(); FileOutputStream fos = new FileOutputStream(fc.getSelectedFile()); fos.write(symmetricKey.getEncoded()); fos.close(); } catch (Exception exc) { exc.printStackTrace(); } } } }); add(loadSymmetricKey); loadSymmetricKey.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); fc.setDialogTitle("Load Symmetric Key"); int returnValue = fc.showOpenDialog(mainFrame.getContentPane()); if (returnValue == JFileChooser.APPROVE_OPTION) { try { FileInputStream fis = new FileInputStream(fc.getSelectedFile()); byte[] keyBytes = new byte[(int) fc.getSelectedFile().length()]; int offSet = 0; int numRead; while (offSet != keyBytes.length && (numRead = fis.read(keyBytes, offSet, keyBytes.length - offSet)) != -1) { offSet += numRead; System.out.println("Read " + numRead); } fis.close(); System.out.println("Read in key"); SecretKeyFactory skf = SecretKeyFactory.getInstance("AES", "BC"); symmetricKey = skf.generateSecret(new SecretKeySpec(keyBytes, "AES")); System.out.println("Converted to AESKey"); encryptSFile.setEnabled(true); decryptSFile.setEnabled(true); } catch (Exception exc) { exc.printStackTrace(); } } } }); encryptSFile.setEnabled(false); add(encryptSFile); encryptSFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { enCodeIt("AES/CBC/PKCS5Padding", true, symmetricKey, ivSpec); /* JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); fc.setDialogTitle("Choose file to encrypt"); int returnValue = fc.showOpenDialog(mainFrame.getContentPane()); if (returnValue==JFileChooser.APPROVE_OPTION) { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding","BC"); IvParameterSpec spec = new IvParameterSpec(iv); cipher.init(Cipher.ENCRYPT_MODE, symmetricKey, spec); FileInputStream fis = new FileInputStream(fc.getSelectedFile()); FileOutputStream fos = new FileOutputStream(fc.getSelectedFile()+".enc"); CipherOutputStream cos = new CipherOutputStream(fos, cipher); byte[] buf = new byte[bufSize]; int numRead; while ((numRead=fis.read(buf))!=-1) cos.write(buf,0,numRead); fis.close(); cos.close(); } catch (Exception exc) { exc.printStackTrace(); } } */ } }); decryptSFile.setEnabled(false); add(decryptSFile); decryptSFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { enCodeIt("AES/CBC/PKCS5Padding", false, symmetricKey, ivSpec); /* JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); fc.setDialogTitle("Choose file to decrypt"); int returnValue = fc.showOpenDialog(mainFrame.getContentPane()); if (returnValue==JFileChooser.APPROVE_OPTION) { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding","BC"); IvParameterSpec spec = new IvParameterSpec(iv); cipher.init(Cipher.DECRYPT_MODE, symmetricKey, spec); FileInputStream fis = new FileInputStream(fc.getSelectedFile()); FileOutputStream fos = new FileOutputStream(fc.getSelectedFile()+".dec"); CipherOutputStream cos = new CipherOutputStream(fos, cipher); byte[] buf = new byte[bufSize]; int numRead; while ((numRead=fis.read(buf))!=-1) cos.write(buf,0,numRead); fis.close(); cos.close(); } catch (Exception exc) { exc.printStackTrace(); } } */ } }); addSeparator(); add(getSHA); getSHA.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); fc.setDialogTitle("Choose file"); int returnValue = fc.showOpenDialog(mainFrame.getContentPane()); if (returnValue == JFileChooser.APPROVE_OPTION) { try { MessageDigest md = MessageDigest.getInstance("SHA-1", "BC"); FileInputStream fis = new FileInputStream(fc.getSelectedFile()); DigestInputStream dis = new DigestInputStream(fis, md); byte[] buf = new byte[bufSize]; while (dis.read(buf) != -1) ; byte[] raw = md.digest(); fis.close(); new SelectDialog(mainFrame, "SHA-1", false, "SHA-1", fc.getSelectedFile(), "sha", raw); } catch (Exception exc) { exc.printStackTrace(); } } } }); add(getMD5); getMD5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); fc.setDialogTitle("Choose file"); int returnValue = fc.showOpenDialog(mainFrame.getContentPane()); if (returnValue == JFileChooser.APPROVE_OPTION) { try { MessageDigest md = MessageDigest.getInstance("MD5", "BC"); FileInputStream fis = new FileInputStream(fc.getSelectedFile()); DigestInputStream dis = new DigestInputStream(fis, md); byte[] buf = new byte[bufSize]; while (dis.read(buf) != -1) ; byte[] raw = md.digest(); fis.close(); new SelectDialog(mainFrame, "MD5", false, "MD5", fc.getSelectedFile(), "md5", raw); } catch (Exception exc) { exc.printStackTrace(); } } } }); add(getBase64); getBase64.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); fc.setDialogTitle("Choose file"); int returnValue = fc.showOpenDialog(mainFrame.getContentPane()); if (returnValue == JFileChooser.APPROVE_OPTION) { try { FileInputStream fis = new FileInputStream(fc.getSelectedFile()); OutputStreamWriter osw = new OutputStreamWriter( new FileOutputStream(fc.getSelectedFile() + ".b64"), "UTF8"); BASE64Encoder enc = new BASE64Encoder(); String base64; byte[] bufRead; byte[] buf = new byte[bufSize]; int numRead; while ((numRead = fis.read(buf)) != -1) { bufRead = new byte[numRead]; System.arraycopy(buf, 0, bufRead, 0, numRead); base64 = enc.encode(bufRead); osw.write(base64); } fis.close(); osw.close(); } catch (Exception exc) { exc.printStackTrace(); } } } }); }
From source file:chatapplication.genrateRSAkeys.java
public static void main(String args[]) throws NoSuchAlgorithmException, Exception { KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); KeyFactory fact = KeyFactory.getInstance("RSA"); kpg.initialize(2048);//from w w w.j a v a2 s . c o m KeyPair kp = kpg.genKeyPair(); PublicKey publicKey = kp.getPublic(); PrivateKey privateKey = kp.getPrivate(); byte[] data = publicKey.getEncoded(); String d1 = new String(data); String dl = Arrays.toString(data); String message = "HI"; // String encKey = new String(publicKey); // byte[] publicK = Base64.getDecoder().decode(data); //byte[] publicBytes = Base64.getDecoder().decode(convertedPublic); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(data); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey pubKey = keyFactory.generatePublic(keySpec); Provider bcProvider = new BouncyCastleProvider(); byte encryptedMessage[] = RSAencrypt(message, pubKey); byte decryptedMessage[] = RSAdecrypt(encryptedMessage, privateKey); System.out.println("Message" + new String(decryptedMessage)); }
From source file:chatapplication.genrateRSAkeys.java
public static byte[] RSAencrypt(String plainText, PublicKey pKey) throws Exception { Provider bcProvider = new BouncyCastleProvider(); Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", bcProvider); cipher.init(Cipher.ENCRYPT_MODE, pKey); byte[] c = cipher.doFinal(plainText.getBytes("UTF-8")); return c;/*from www .j ava 2 s. c om*/ }
From source file:chatapplication.genrateRSAkeys.java
public static byte[] RSAdecrypt(byte[] res1, PrivateKey pk) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { Provider bcProvider = new BouncyCastleProvider(); Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", bcProvider); cipher.init(Cipher.DECRYPT_MODE, pk); byte[] key = cipher.doFinal(res1); return key;/*from w ww. ja va 2 s. c om*/ }
From source file:chatapplication.Securechat.java
public static byte[] RSAencrypt(String plainText, PublicKey pKey) throws Exception { Provider bcProvider = new BouncyCastleProvider(); Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", bcProvider); cipher.init(Cipher.ENCRYPT_MODE, pKey); byte[] c = cipher.doFinal(plainText.getBytes("UTF-8")); return c;/*from w ww . j a va 2s . c om*/ }
From source file:chatapplication.Securechat.java
public static byte[] RSAdecrypt(byte[] res1, PrivateKey pk) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { Provider bcProvider = new BouncyCastleProvider(); final Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", bcProvider); cipher.init(Cipher.DECRYPT_MODE, pk); byte[] key = cipher.doFinal(res1); return key;// w ww .j av a 2 s .co m }
From source file:cliente.Signatures.java
static public boolean verifySignature(PublicKey pubKey, byte[] data, byte[] signature) { boolean res = false; try {// w w w .j a v a 2 s.c o m Security.addProvider(new BouncyCastleProvider()); Signature sig = Signature.getInstance("SHA1withRSA", "BC"); sig.initVerify(pubKey); sig.update(data); res = sig.verify(signature); } catch (Exception ex) { Logger.getLogger(DH_KeyAgreement.class.getName()).log(Level.SEVERE, null, ex); } return res; }
From source file:cliente.Signatures.java
static public byte[] generatingSignature(PrivateKey priv, byte[] data) { byte[] realSig = null; try {// w w w .ja va 2s. c o m Security.addProvider(new BouncyCastleProvider()); Signature dsa = Signature.getInstance("SHA1withRSA", "BC"); dsa.initSign(priv); dsa.update(data); realSig = dsa.sign(); } catch (Exception e) { System.err.println("Caught exception " + e.toString()); } return realSig; }