package com.bahadirakin.utils; import com.bahadirakin.cipher.CipherAlgorithm; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; import java.security.Key; import java.security.NoSuchAlgorithmException; /** * Created by bhdrkn on 21/12/14. */ public final class KeyUtils { public static final Key generateDESKey() { try { return KeyUtils.generateKey(CipherAlgorithm.DES); } catch (NoSuchAlgorithmException e) { // DES'in herzaman oldugunu biliyoruz return null; } } public static final Key createDESKey(final byte[] key) { return KeyUtils.createKey(key, CipherAlgorithm.DES); } public static final Key createDESKey(final String key) { return KeyUtils.createKey(key, CipherAlgorithm.DES); } public static final Key generateAESKey() { try { return KeyUtils.generateKey(CipherAlgorithm.AES); } catch (NoSuchAlgorithmException e) { // AES'in herzaman oldugunu biliyoruz return null; } } public static final Key createAESKey(final byte[] key) { return KeyUtils.createKey(key, CipherAlgorithm.AES); } public static final Key createAESKey(final String key) { return KeyUtils.createKey(key, CipherAlgorithm.AES); } public static final String parseAsBase64(final Key key) { return Base64.encodeBytes(key.getEncoded()); } public static final Key createKey(final byte[] key, final CipherAlgorithm cipherAlgorithm) { return new SecretKeySpec(key, cipherAlgorithm.getAlgorithm()); } public static final Key createKey(final String key, final CipherAlgorithm cipherAlgorithm) { try { return new SecretKeySpec(key.getBytes("UTF-8"), cipherAlgorithm.getAlgorithm()); } catch (UnsupportedEncodingException e) { // UTF-8'in bulunmamasi pek olası degil return null; } } public static final Key generateKey(final CipherAlgorithm cipherAlgorithm) throws NoSuchAlgorithmException { final KeyGenerator keyGenerator = KeyGenerator.getInstance(cipherAlgorithm.getAlgorithm()); return keyGenerator.generateKey(); } }