private static Map<String, Parameters> namedParameters() throws GeneralSecurityException {
    Map<String, Parameters> result = new HashMap<>();
    result.put(
        "RSA_SSA_PKCS1_3072_SHA256_F4", PredefinedSignatureParameters.RSA_SSA_PKCS1_3072_SHA256_F4);
    result.put(
        "RSA_SSA_PKCS1_3072_SHA256_F4_RAW",
        RsaSsaPkcs1Parameters.builder()
            .setHashType(RsaSsaPkcs1Parameters.HashType.SHA256)
            .setModulusSizeBits(3072)
            .setPublicExponent(RsaSsaPkcs1Parameters.F4)
            .setVariant(RsaSsaPkcs1Parameters.Variant.NO_PREFIX)
            .build());
    // This is identical to RSA_SSA_PKCS1_3072_SHA256_F4_RAW. It is needed to maintain backward
    // compatibility with SignatureKeyTemplates.
    result.put(
        "RSA_SSA_PKCS1_3072_SHA256_F4_WITHOUT_PREFIX",
        PredefinedSignatureParameters.RSA_SSA_PKCS1_3072_SHA256_F4_WITHOUT_PREFIX);
    result.put(
        "RSA_SSA_PKCS1_4096_SHA512_F4", PredefinedSignatureParameters.RSA_SSA_PKCS1_4096_SHA512_F4);
    result.put(
        "RSA_SSA_PKCS1_4096_SHA512_F4_RAW",
        RsaSsaPkcs1Parameters.builder()
            .setHashType(RsaSsaPkcs1Parameters.HashType.SHA512)
            .setModulusSizeBits(4096)
            .setPublicExponent(RsaSsaPkcs1Parameters.F4)
            .setVariant(RsaSsaPkcs1Parameters.Variant.NO_PREFIX)
            .build());
    return result;
  }
This key manager generates new {@code RsaSsaPkcs1PrivateKey} keys and produces new instances of
{@code RsaSsaPkcs1SignJce}.
java_src/src/main/java/com/google/crypto/tink/signature/RsaSsaPkcs1SignKeyManager.java