ECDSA-Signatur-Generierung mit secp256r1 Kurve und SHA256-Algorithmus - BouncyCastle

Ich versuche zu generieren, die Signatur mit ECDSA mit secp256r1 Kurve (P256) und SHA256-Algorithmus für message-hash. Auch ich bin mit Hüpfburg Bibliotheken.
Code

public class MyTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        new MyTest().getSign();
    }

    void getSign() {
        //Get the instance of the Key Generator with "EC" algorithm

        try {
            KeyPairGenerator g = KeyPairGenerator.getInstance("EC");
            ECGenParameterSpec kpgparams = new ECGenParameterSpec("secp256r1");
            g.initialize(kpgparams);

            KeyPair pair = g.generateKeyPair();
            //Instance of signature class with SHA256withECDSA algorithm
            Signature ecdsaSign = Signature.getInstance("SHA256withECDSA");
            ecdsaSign.initSign(pair.getPrivate());

            System.out.println("Private Keys is::" + pair.getPrivate());
            System.out.println("Public Keys is::" + pair.getPublic());

            String msg = "text ecdsa with sha256";//getSHA256(msg)
            ecdsaSign.update((msg + pair.getPrivate().toString())
                    .getBytes("UTF-8"));

            byte[] signature = ecdsaSign.sign();
            System.out.println("Signature is::"
                    + new BigInteger(1, signature).toString(16));

            //Validation
            ecdsaSign.initVerify(pair.getPublic());
            ecdsaSign.update(signature);
            if (ecdsaSign.verify(signature))
                System.out.println("valid");
            else
                System.out.println("invalid!!!!");

        } catch (Exception e) {
            //TODO: handle exception
            e.printStackTrace();
        }

    }

}

Hier Schlüsselpaare generiert Schlüsselpaar , aber für meine Anforderung habe ich eine statische privateKey und den öffentlichen Schlüssel. Auch die Validierung der Signatur ist immer false zurückgeben.

Brauche Hilfe, wie kann ich mit statischen privaten Schlüssel und den an der Validierung Teil.

InformationsquelleAutor | 2014-08-12

Schreibe einen Kommentar