List of usage examples for java.security KeyFactory getKeySpec
public final <T extends KeySpec> T getKeySpec(Key key, Class<T> keySpec) throws InvalidKeySpecException
From source file:com.cellngine.crypto.RSACipher.java
private <T extends java.security.spec.KeySpec> T getKeySpec(final Key key, final Class<T> keyClass) { final KeyFactory factory = this.getKeyFactory(); try {//from w w w . jav a 2 s .co m return factory.getKeySpec(key, keyClass); } catch (final InvalidKeySpecException e) { LOG.error("Unable to get key spec from factory", e); return null; } }
From source file:cloud.google.com.windows.example.ExampleCode.java
@SuppressWarnings("unchecked") private JSONObject jsonEncode(KeyPair keys) throws NoSuchAlgorithmException, InvalidKeySpecException { KeyFactory factory = KeyFactory.getInstance("RSA"); // Get the RSA spec for key manipulation. RSAPublicKeySpec pubSpec = factory.getKeySpec(keys.getPublic(), RSAPublicKeySpec.class); // Extract required parts of the key. BigInteger modulus = pubSpec.getModulus(); BigInteger exponent = pubSpec.getPublicExponent(); // Grab an encoder for the modulus and exponent to encode using RFC 3548; // Java SE 7 requires an external library (Google's Guava used here) // Java SE 8 has a built-in Base64 class that can be used instead. Apache also has an RFC 3548 // encoder./*www . j ava 2 s. c om*/ BaseEncoding stringEncoder = BaseEncoding.base64(); // Strip out the leading 0 byte in the modulus. byte[] arr = Arrays.copyOfRange(modulus.toByteArray(), 1, modulus.toByteArray().length); JSONObject returnJson = new JSONObject(); // Encode the modulus, add to returned JSON object. String modulusString = stringEncoder.encode(arr).replaceAll("\n", ""); returnJson.put("modulus", modulusString); // Encode exponent, add to returned JSON object. String exponentString = stringEncoder.encode(exponent.toByteArray()).replaceAll("\n", ""); returnJson.put("exponent", exponentString); return returnJson; }
From source file:org.dasein.cloud.google.compute.server.ServerSupport.java
private JSONObject jsonEncode(KeyPair keys) throws InternalException { JSONObject returnJson = new JSONObject(); try {//w w w . ja v a 2 s .c o m KeyFactory factory = KeyFactory.getInstance("RSA"); RSAPublicKeySpec pubSpec = factory.getKeySpec(keys.getPublic(), RSAPublicKeySpec.class); BigInteger modulus = pubSpec.getModulus(); BigInteger exponent = pubSpec.getPublicExponent(); BaseEncoding stringEncoder = BaseEncoding.base64(); // Strip out the leading 0 byte in the modulus. byte[] arr = Arrays.copyOfRange(modulus.toByteArray(), 1, modulus.toByteArray().length); returnJson.put("modulus", stringEncoder.encode(arr).replaceAll("\n", "")); returnJson.put("exponent", stringEncoder.encode(exponent.toByteArray()).replaceAll("\n", "")); } catch (Exception e) { throw new InternalException(e); } return returnJson; }
From source file:com.poscoict.license.service.BoardService.java
public Map<String, Object> passwordPop(HttpSession session) throws Exception { logger.info("get passwordPopForm"); Map<String, Object> map = new HashMap<String, Object>(); KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA"); generator.initialize(2048);/*from www . j av a 2s.c o m*/ KeyPair keyPair = generator.genKeyPair(); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); // ? ? ?? ? . session.setAttribute("__rsaPrivateKey__", privateKey); // ? JavaScript RSA ?? . RSAPublicKeySpec publicSpec = (RSAPublicKeySpec) keyFactory.getKeySpec(publicKey, RSAPublicKeySpec.class); map.put("publicKeyModulus", publicSpec.getModulus().toString(16)); map.put("publicKeyExponent", publicSpec.getPublicExponent().toString(16)); logger.info("return passwordPopForm"); return map; }