Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[client] Add default implementation of CryptoKeyReader #9379

Merged
merged 1 commit into from
Feb 1, 2021

Conversation

massakam
Copy link
Contributor

Currently, users must implement the CryptoKeyReader interface for end-to-end message encryption in Java. I thought it would be useful to have a default implementation, so I added DefaultCryptoKeyReader.

How to use:

Producer<byte[]> producer = pulsarClient.newProducer()
        .topic("persistent://public/default/test")
        .addEncryptionKey("my-app-key1")
        .defaultCryptoKeyReader("file:///path/to/public.key")
        .create();

Consumer<byte[]> consumer = pulsarClient.newConsumer()
        .topic("persistent://public/default/test")
        .subscriptionName("sub1")
        .defaultCryptoKeyReader(new HashMap<String, String>() {
            {
                put("my-app-key1", "file:///path/to/private.key");
                put("my-app-key2", "data:application/x-pem-file;base64,*****");
            }
        })
        .subscribe();

@massakam massakam added type/enhancement The enhancements for the existing features or docs. e.g. reduce memory usage of the delayed messages area/client labels Jan 30, 2021
@massakam massakam added this to the 2.8.0 milestone Jan 30, 2021
@massakam massakam self-assigned this Jan 30, 2021
@sijie sijie merged commit 85b1c7e into apache:master Feb 1, 2021
@massakam massakam deleted the default-crypto-key-reader branch February 1, 2021 02:25
sijie pushed a commit that referenced this pull request Feb 24, 2021
Currently, `pulsar-perf` has its own implementation class of `CryptoKeyReader` for end-to-end encryption of messages. Instead of this class, use `DefaultCryptoKeyReader` implemented in #9379. This change allows us to specify public and private keys by data URI as well as by file path.
zymap pushed a commit that referenced this pull request Mar 3, 2021
Currently, `pulsar-perf` has its own implementation class of `CryptoKeyReader` for end-to-end encryption of messages. Instead of this class, use `DefaultCryptoKeyReader` implemented in #9379. This change allows us to specify public and private keys by data URI as well as by file path.

(cherry picked from commit aa63511)
zymap pushed a commit that referenced this pull request Mar 3, 2021
Currently, users must implement the `CryptoKeyReader` interface for end-to-end message encryption in Java. I thought it would be useful to have a default implementation, so I added `DefaultCryptoKeyReader`.

How to use:
```java
Producer<byte[]> producer = pulsarClient.newProducer()
        .topic("persistent://public/default/test")
        .addEncryptionKey("my-app-key1")
        .defaultCryptoKeyReader("file:///path/to/public.key")
        .create();

Consumer<byte[]> consumer = pulsarClient.newConsumer()
        .topic("persistent://public/default/test")
        .subscriptionName("sub1")
        .defaultCryptoKeyReader(new HashMap<String, String>() {
            {
                put("my-app-key1", "file:///path/to/private.key");
                put("my-app-key2", "data:application/x-pem-file;base64,*****");
            }
        })
        .subscribe();
```

(cherry picked from commit 85b1c7e)
@zymap zymap added the cherry-picked/branch-2.7 Archived: 2.7 is end of life label Mar 3, 2021
zymap pushed a commit to streamnative/pulsar-archived that referenced this pull request Mar 5, 2021
…che#9668)

Currently, `pulsar-perf` has its own implementation class of `CryptoKeyReader` for end-to-end encryption of messages. Instead of this class, use `DefaultCryptoKeyReader` implemented in apache#9379. This change allows us to specify public and private keys by data URI as well as by file path.

(cherry picked from commit aa63511)
zymap pushed a commit to streamnative/pulsar-archived that referenced this pull request Mar 5, 2021
Currently, users must implement the `CryptoKeyReader` interface for end-to-end message encryption in Java. I thought it would be useful to have a default implementation, so I added `DefaultCryptoKeyReader`.

How to use:
```java
Producer<byte[]> producer = pulsarClient.newProducer()
        .topic("persistent://public/default/test")
        .addEncryptionKey("my-app-key1")
        .defaultCryptoKeyReader("file:///path/to/public.key")
        .create();

Consumer<byte[]> consumer = pulsarClient.newConsumer()
        .topic("persistent://public/default/test")
        .subscriptionName("sub1")
        .defaultCryptoKeyReader(new HashMap<String, String>() {
            {
                put("my-app-key1", "file:///path/to/private.key");
                put("my-app-key2", "data:application/x-pem-file;base64,*****");
            }
        })
        .subscribe();
```

(cherry picked from commit 85b1c7e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/client cherry-picked/branch-2.7 Archived: 2.7 is end of life release/2.7.1 type/enhancement The enhancements for the existing features or docs. e.g. reduce memory usage of the delayed messages
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants