Example usage for org.bouncycastle.jce.provider JCEECPrivateKey getD

List of usage examples for org.bouncycastle.jce.provider JCEECPrivateKey getD

Introduction

In this page you can find the example usage for org.bouncycastle.jce.provider JCEECPrivateKey getD.

Prototype

public BigInteger getD() 

Source Link

Usage

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");
}