/** * @return a PublicKeySign primitive from a {@code keysetHandle}. * @throws GeneralSecurityException */ public static PublicKeySign getPrimitive(KeysetHandle keysetHandle) throws GeneralSecurityException { return getPrimitive(keysetHandle, /* keyManager= */ null); }
/** * @return a PublicKeySign primitive from a {@code keysetHandle} and a custom {@code keyManager}. * @throws GeneralSecurityException */ public static PublicKeySign getPrimitive( KeysetHandle keysetHandle, final KeyManager<PublicKeySign> keyManager) throws GeneralSecurityException { final PrimitiveSet<PublicKeySign> primitives = Registry.getPrimitives(keysetHandle, keyManager); validate(primitives); return new PublicKeySign() { @Override public byte[] sign(final byte[] data) throws GeneralSecurityException { if (primitives.getPrimary().getOutputPrefixType().equals(OutputPrefixType.LEGACY)) { byte[] formatVersion = new byte[] {CryptoFormat.LEGACY_START_BYTE}; return Bytes.concat( primitives.getPrimary().getIdentifier(), primitives.getPrimary().getPrimitive().sign(Bytes.concat(data, formatVersion))); } return Bytes.concat( primitives.getPrimary().getIdentifier(), primitives.getPrimary().getPrimitive().sign(data)); } }; }
private byte[] sign(KeysetHandle privateKeysetHandle) throws GeneralSecurityException { PublicKeySign signer = PublicKeySignFactory.getPrimitive(privateKeysetHandle); return signer.sign(INITIAL_TEXT.getBytes()); }
/** * Constructs a new RSA-ECDSA EncrypterManager. * * <p>Please note that the {@link InputStream} {@code senderSigningKey} will not be closed. * * @param senderSigningKey the serialized Tink signing key. * @throws GeneralSecurityException if the initialization fails. * @throws IOException if the given sender signing key cannot be read. */ public RsaEcdsaEncrypterManager(InputStream senderSigningKey) throws GeneralSecurityException, IOException { KeysetHandle signingKeyHandle = CleartextKeysetHandle .read(BinaryKeysetReader.withInputStream(senderSigningKey)); senderSigner = PublicKeySignFactory.getPrimitive(signingKeyHandle); }
/** * Constructs a new RSA-ECDSA EncrypterManager. * * <p>Please note that the {@link InputStream} {@code senderSigningKey} will not be closed. * * @param senderSigningKey the serialized Tink signing key. * @throws GeneralSecurityException if the initialization fails. * @throws IOException if the given sender signing key cannot be read. */ public RsaEcdsaEncrypterManager(InputStream senderSigningKey) throws GeneralSecurityException, IOException { KeysetHandle signingKeyHandle = CleartextKeysetHandle .read(BinaryKeysetReader.withInputStream(senderSigningKey)); senderSigner = PublicKeySignFactory.getPrimitive(signingKeyHandle); }
static PublicKeySign createTestSenderSigner() throws GeneralSecurityException, IOException { KeysetHandle signingKeyHandle = CleartextKeysetHandle .read(BinaryKeysetReader.withBytes(TestUtils.getBytes("signing_key.dat"))); return PublicKeySignFactory.getPrimitive(signingKeyHandle); }