Example usage for org.bouncycastle.jce.provider JCEECPublicKey getQ

List of usage examples for org.bouncycastle.jce.provider JCEECPublicKey getQ

Introduction

In this page you can find the example usage for org.bouncycastle.jce.provider JCEECPublicKey getQ.

Prototype

public org.bouncycastle.math.ec.ECPoint getQ() 

Source Link

Usage

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);// w ww .  j a va2s.co  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);//from  w  w  w  . ja v a  2 s .c  om
    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);//from   w w  w.  j  a v a 2 s  . co  m
    assertTrue(signatureVerified, "Invalid signature");
}