title: ECDSA signature generation using secp256r1 curve and SHA256 algorithm - BouncyCastle
body: <p>I am trying to generate signature using ECDSA with secp256r1 curve (P256) and SHA256 algorithm for message hash. Also i am using Bouncy Castle libraries. 
  Code below, </p>
  
  <pre><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();
          }
  
      }
  
  }
  </code></pre>
  
  <p>Here key pairs are generated using KeyPair , but for my requirement I will be having a static privateKey and public key. Also, validation of signature is always returning false.</p>
  
  <p>Need help, how can I have static private key and on validation part.</p>