List of usage examples for org.bouncycastle.jce.provider JCEECPrivateKey getD
public BigInteger getD()
From source file:org.jmrtd.app.DocumentEditFrame.java
License:Open Source License
private static PublicKey getECPublicKeyFromPrivateKey(PrivateKey privateKey) throws GeneralSecurityException { KeyFactory keyFactory = KeyFactory.getInstance("EC", BC_PROVIDER); org.bouncycastle.jce.provider.JCEECPrivateKey priv = (org.bouncycastle.jce.provider.JCEECPrivateKey) privateKey; org.bouncycastle.jce.spec.ECParameterSpec params = priv.getParameters(); org.bouncycastle.jce.spec.ECPublicKeySpec pubKS = new org.bouncycastle.jce.spec.ECPublicKeySpec( params.getG().multiply(priv.getD()), params); PublicKey publicKey = keyFactory.generatePublic(pubKS); return publicKey; }
From source file:org.xdi.oxauth.ws.rs.TokenSignaturesHttpTest.java
License:MIT License
@Test public void es256() throws NoSuchProviderException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, SignatureException, InvalidKeyException, InvalidKeySpecException, IllegalBlockSizeException, IOException, NoSuchPaddingException, BadPaddingException { showTitle("es256"); // Generate ECDSA Key KeyPair keyPair = JwtUtil.generateKeyES256(); JCEECPrivateKey privateKey = (JCEECPrivateKey) keyPair.getPrivate(); JCEECPublicKey publicKey = (JCEECPublicKey) keyPair.getPublic(); ECDSAPrivateKey ecdsaPrivateKey = new ECDSAPrivateKey(privateKey.getD()); ECDSAPublicKey ecdsaPublicKey = new ECDSAPublicKey(SignatureAlgorithm.ES256, publicKey.getQ().getX().toBigInteger(), publicKey.getQ().getY().toBigInteger()); System.out.println("PRIVATE KEY"); System.out.println("D: " + ecdsaPrivateKey.getD()); System.out.println("PUBLIC KEY"); System.out.println("X: " + ecdsaPublicKey.getX()); System.out.println("Y: " + ecdsaPublicKey.getY()); // Encode message String signingInput = "eyJhbGciOiJIUzI1NiJ9.eyJub25jZSI6ICI2Qm9HN1QwR0RUZ2wiLCAiaWRfdG9rZW4iOiB7Im1heF9hZ2UiOiA4NjQwMH0sICJzdGF0ZSI6ICJTVEFURTAiLCAicmVkaXJlY3RfdXJpIjogImh0dHBzOi8vbG9jYWxob3N0L2NhbGxiYWNrMSIsICJ1c2VyaW5mbyI6IHsiY2xhaW1zIjogeyJuYW1lIjogbnVsbH19LCAiY2xpZW50X2lkIjogIkAhMTExMSEwMDA4IUU2NTQuQjQ2MCIsICJzY29wZSI6IFsib3BlbmlkIl0sICJyZXNwb25zZV90eXBlIjogWyJjb2RlIl19"; byte[] signature = JwtUtil.getSignatureES256(signingInput.getBytes(), ecdsaPrivateKey); String encodedSignature = JwtUtil.base64urlencode(signature); System.out.println("Encoded Signature: " + encodedSignature); // Verify signature boolean signatureVerified = JwtUtil.verifySignatureES256(signingInput.getBytes(), signature, ecdsaPublicKey);/*from ww w. java 2 s .c o m*/ assertTrue(signatureVerified, "Invalid signature"); }
From source file:org.xdi.oxauth.ws.rs.TokenSignaturesHttpTest.java
License:MIT License
@Test public void es384() throws NoSuchProviderException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, SignatureException, InvalidKeyException, InvalidKeySpecException, IllegalBlockSizeException, IOException, NoSuchPaddingException, BadPaddingException { showTitle("es384"); // Generate ECDSA Key KeyPair keyPair = JwtUtil.generateKeyES384(); JCEECPrivateKey privateKey = (JCEECPrivateKey) keyPair.getPrivate(); JCEECPublicKey publicKey = (JCEECPublicKey) keyPair.getPublic(); ECDSAPrivateKey ecdsaPrivateKey = new ECDSAPrivateKey(privateKey.getD()); ECDSAPublicKey ecdsaPublicKey = new ECDSAPublicKey(SignatureAlgorithm.ES384, publicKey.getQ().getX().toBigInteger(), publicKey.getQ().getY().toBigInteger()); System.out.println("PRIVATE KEY"); System.out.println("D: " + ecdsaPrivateKey.getD()); System.out.println("PUBLIC KEY"); System.out.println("X: " + ecdsaPublicKey.getX()); System.out.println("Y: " + ecdsaPublicKey.getY()); // Encode message String signingInput = "eyJhbGciOiJIUzI1NiJ9.eyJub25jZSI6ICI2Qm9HN1QwR0RUZ2wiLCAiaWRfdG9rZW4iOiB7Im1heF9hZ2UiOiA4NjQwMH0sICJzdGF0ZSI6ICJTVEFURTAiLCAicmVkaXJlY3RfdXJpIjogImh0dHBzOi8vbG9jYWxob3N0L2NhbGxiYWNrMSIsICJ1c2VyaW5mbyI6IHsiY2xhaW1zIjogeyJuYW1lIjogbnVsbH19LCAiY2xpZW50X2lkIjogIkAhMTExMSEwMDA4IUU2NTQuQjQ2MCIsICJzY29wZSI6IFsib3BlbmlkIl0sICJyZXNwb25zZV90eXBlIjogWyJjb2RlIl19"; byte[] signature = JwtUtil.getSignatureES384(signingInput.getBytes(), ecdsaPrivateKey); String encodedSignature = JwtUtil.base64urlencode(signature); System.out.println("Encoded Signature: " + encodedSignature); // Verify signature boolean signatureVerified = JwtUtil.verifySignatureES384(signingInput.getBytes(), signature, ecdsaPublicKey);/* w w w .j a va2s . c o m*/ assertTrue(signatureVerified, "Invalid signature"); }
From source file:org.xdi.oxauth.ws.rs.TokenSignaturesHttpTest.java
License:MIT License
@Test public void es512() throws NoSuchProviderException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, SignatureException, InvalidKeyException, InvalidKeySpecException, IllegalBlockSizeException, IOException, NoSuchPaddingException, BadPaddingException { showTitle("es512"); // Generate ECDSA Key KeyPair keyPair = JwtUtil.generateKeyES512(); JCEECPrivateKey privateKey = (JCEECPrivateKey) keyPair.getPrivate(); JCEECPublicKey publicKey = (JCEECPublicKey) keyPair.getPublic(); ECDSAPrivateKey ecdsaPrivateKey = new ECDSAPrivateKey(privateKey.getD()); ECDSAPublicKey ecdsaPublicKey = new ECDSAPublicKey(SignatureAlgorithm.ES512, publicKey.getQ().getX().toBigInteger(), publicKey.getQ().getY().toBigInteger()); System.out.println("PRIVATE KEY"); System.out.println("D: " + ecdsaPrivateKey.getD()); System.out.println("PUBLIC KEY"); System.out.println("X: " + ecdsaPublicKey.getX()); System.out.println("Y: " + ecdsaPublicKey.getY()); // Encode message String signingInput = "eyJhbGciOiJIUzI1NiJ9.eyJub25jZSI6ICI2Qm9HN1QwR0RUZ2wiLCAiaWRfdG9rZW4iOiB7Im1heF9hZ2UiOiA4NjQwMH0sICJzdGF0ZSI6ICJTVEFURTAiLCAicmVkaXJlY3RfdXJpIjogImh0dHBzOi8vbG9jYWxob3N0L2NhbGxiYWNrMSIsICJ1c2VyaW5mbyI6IHsiY2xhaW1zIjogeyJuYW1lIjogbnVsbH19LCAiY2xpZW50X2lkIjogIkAhMTExMSEwMDA4IUU2NTQuQjQ2MCIsICJzY29wZSI6IFsib3BlbmlkIl0sICJyZXNwb25zZV90eXBlIjogWyJjb2RlIl19"; byte[] signature = JwtUtil.getSignatureES512(signingInput.getBytes(), ecdsaPrivateKey); String encodedSignature = JwtUtil.base64urlencode(signature); System.out.println("Encoded Signature: " + encodedSignature); // Verify signature boolean signatureVerified = JwtUtil.verifySignatureES512(signingInput.getBytes(), signature, ecdsaPublicKey);//w ww . jav a 2 s . c o m assertTrue(signatureVerified, "Invalid signature"); }