private static Map<String, Parameters> namedParameters() throws GeneralSecurityException {
        Map<String, Parameters> result = new HashMap<>();
        result.put("ECDSA_P256", PredefinedSignatureParameters.ECDSA_P256);
    // This key template does not make sense because IEEE P1363 mandates a raw signature.
    // It is needed to maintain backward compatibility with SignatureKeyTemplates.
    result.put("ECDSA_P256_IEEE_P1363", PredefinedSignatureParameters.ECDSA_P256_IEEE_P1363);
    result.put(
        "ECDSA_P256_RAW",
        EcdsaParameters.builder()
            .setHashType(EcdsaParameters.HashType.SHA256)
            .setCurveType(EcdsaParameters.CurveType.NIST_P256)
            .setSignatureEncoding(EcdsaParameters.SignatureEncoding.IEEE_P1363)
            .setVariant(EcdsaParameters.Variant.NO_PREFIX)
            .build());
    // This key template is identical to ECDSA_P256_RAW.
    // It is needed to maintain backward compatibility with SignatureKeyTemplates.
    result.put(
        "ECDSA_P256_IEEE_P1363_WITHOUT_PREFIX",
        PredefinedSignatureParameters.ECDSA_P256_IEEE_P1363_WITHOUT_PREFIX);
    result.put("ECDSA_P384", PredefinedSignatureParameters.ECDSA_P384);
    result.put("ECDSA_P384_IEEE_P1363", PredefinedSignatureParameters.ECDSA_P384_IEEE_P1363);
    result.put(
        "ECDSA_P384_SHA512",
        EcdsaParameters.builder()
            .setHashType(EcdsaParameters.HashType.SHA512)
            .setCurveType(EcdsaParameters.CurveType.NIST_P384)
            .setSignatureEncoding(EcdsaParameters.SignatureEncoding.DER)
            .setVariant(EcdsaParameters.Variant.TINK)
            .build());
    result.put(
        "ECDSA_P384_SHA384",
        EcdsaParameters.builder()
            .setHashType(EcdsaParameters.HashType.SHA384)
            .setCurveType(EcdsaParameters.CurveType.NIST_P384)
            .setSignatureEncoding(EcdsaParameters.SignatureEncoding.DER)
            .setVariant(EcdsaParameters.Variant.TINK)
            .build());
    result.put("ECDSA_P521", PredefinedSignatureParameters.ECDSA_P521);
    result.put("ECDSA_P521_IEEE_P1363", PredefinedSignatureParameters.ECDSA_P521_IEEE_P1363);
        return Collections.unmodifiableMap(result);
  }
This key manager generates new {@code EcdsaPrivateKey} keys and produces new instances of {@code
EcdsaSignJce}.
java_src/src/main/java/com/google/crypto/tink/signature/EcdsaSignKeyManager.java