Package org.apache.pulsar.client.api
Interface MessageCrypto<MetadataT,BuilderT>
Interface that abstracts the method to encrypt/decrypt message for End to End Encryption.
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addPublicKeyCipher
(Set<String> keyNames, CryptoKeyReader keyReader) boolean
decrypt
(Supplier<MetadataT> messageMetadataSupplier, ByteBuffer payload, ByteBuffer outBuffer, CryptoKeyReader keyReader) void
encrypt
(Set<String> encKeys, CryptoKeyReader keyReader, Supplier<BuilderT> messageMetadataBuilderSupplier, ByteBuffer payload, ByteBuffer outBuffer) int
getMaxOutputSize
(int inputLen) Return the maximum for a given buffer to be encrypted or decrypted.boolean
removeKeyCipher
(String keyName)
-
Field Details
-
IV_LEN
static final int IV_LEN- See Also:
-
-
Method Details
-
addPublicKeyCipher
void addPublicKeyCipher(Set<String> keyNames, CryptoKeyReader keyReader) throws PulsarClientException.CryptoException -
removeKeyCipher
-
getMaxOutputSize
int getMaxOutputSize(int inputLen) Return the maximum for a given buffer to be encrypted or decrypted. This is meant to allow to pre-allocate a buffer with enough space to be passed as- Parameters:
inputLen
- the length of the input buffer- Returns:
- the maximum size of the buffer to hold the encrypted/decrypted version of the input buffer
-
encrypt
void encrypt(Set<String> encKeys, CryptoKeyReader keyReader, Supplier<BuilderT> messageMetadataBuilderSupplier, ByteBuffer payload, ByteBuffer outBuffer) throws PulsarClientException - Throws:
PulsarClientException
-
decrypt
boolean decrypt(Supplier<MetadataT> messageMetadataSupplier, ByteBuffer payload, ByteBuffer outBuffer, CryptoKeyReader keyReader)
-