Flume
  1. Flume
  2. FLUME-1424

File Channel should support encryption

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: v1.3.0
    • Component/s: None
    • Labels:
      None

      Description

      When persisting the data to disk, the File Channel should allow some form of encryption to ensure safety of data.

      1. FLUME-1424-0.patch
        101 kB
        Brock Noland
      2. FLUME-1424-1.patch
        101 kB
        Brock Noland
      3. FLUME-1424-2.patch
        101 kB
        Brock Noland
      4. FLUME-1424-3.patch
        101 kB
        Brock Noland
      5. FLUME-1424-4.patch
        101 kB
        Brock Noland
      6. test.keystore
        1.0 kB
        Brock Noland
      7. FLUME-1424-5.patch
        102 kB
        Brock Noland

        Issue Links

          Activity

          Hide
          Ralph Goers added a comment -

          In looking at the FileChannel, it has a class named FlumeEvent. Could this be handled by making the FlumeEvent implementation pluggable (i.e. use a factory)? An EncryptedFlumeEvent could then perform the encryption/decryption as needed.

          Show
          Ralph Goers added a comment - In looking at the FileChannel, it has a class named FlumeEvent. Could this be handled by making the FlumeEvent implementation pluggable (i.e. use a factory)? An EncryptedFlumeEvent could then perform the encryption/decryption as needed.
          Hide
          Arvind Prabhakar added a comment -

          @Ralph - this is definitely one way to address this requirement. The advantage (and perhaps a disadvantage at the same time) of this approach is that it will only incorporate encryption for the put records.

          Another way to do this is to implement encryption at the LogFile.Writer/Reader level where the byte buffers are serialized between transaction boundaries. This approach will have a higher performance penalty but would encrypt every file channel record regardless of type.

          Show
          Arvind Prabhakar added a comment - @Ralph - this is definitely one way to address this requirement. The advantage (and perhaps a disadvantage at the same time) of this approach is that it will only incorporate encryption for the put records. Another way to do this is to implement encryption at the LogFile.Writer/Reader level where the byte buffers are serialized between transaction boundaries. This approach will have a higher performance penalty but would encrypt every file channel record regardless of type.
          Hide
          Ralph Goers added a comment -

          Aren't the put records the only ones with data that needs encrypting?

          Show
          Ralph Goers added a comment - Aren't the put records the only ones with data that needs encrypting?
          Hide
          Arvind Prabhakar added a comment -

          Yes, the put records do store the data in them. We can perhaps start with that as a first step and if more requirements pop-up, we can address them in follow-up Jiras as necessary.

          Show
          Arvind Prabhakar added a comment - Yes, the put records do store the data in them. We can perhaps start with that as a first step and if more requirements pop-up, we can address them in follow-up Jiras as necessary.
          Hide
          Mike Percy added a comment -

          Adding dependency on FLUME-1487 which will enable metadata storage, which is important for annotation/validation capabilities in the encryption/decryption mechanism.

          @Brock: would FLUME-1487 allow us to tag FileChannel logs at the file level with metadata such as "encryption.codec" = "AES", "encryption.mode" = "puts", etc.?

          Show
          Mike Percy added a comment - Adding dependency on FLUME-1487 which will enable metadata storage, which is important for annotation/validation capabilities in the encryption/decryption mechanism. @Brock: would FLUME-1487 allow us to tag FileChannel logs at the file level with metadata such as "encryption.codec" = "AES", "encryption.mode" = "puts", etc.?
          Hide
          Kamal Bahadur added a comment -

          I would like to work on this. Before I start, I would to hear from the community about various encryption options that can be used for this.

          In my opinion symmetric key encryption is suitable for this task. But my main question is where would we want to store the key(secret)? If we use keystpore (JCEKS), where will we store the keystore password?

          Please help me decide what kind of encryption is optimal and what kind of key management solution should we use.

          Show
          Kamal Bahadur added a comment - I would like to work on this. Before I start, I would to hear from the community about various encryption options that can be used for this. In my opinion symmetric key encryption is suitable for this task. But my main question is where would we want to store the key(secret)? If we use keystpore (JCEKS), where will we store the keystore password? Please help me decide what kind of encryption is optimal and what kind of key management solution should we use.
          Hide
          Mike Percy added a comment -

          Hi Kamal, I'm currently working on a design for this. If you don't mind, I'd like to continue w/ that and share more information soon to vet it out with you and others in the community. Is that alright?

          Show
          Mike Percy added a comment - Hi Kamal, I'm currently working on a design for this. If you don't mind, I'd like to continue w/ that and share more information soon to vet it out with you and others in the community. Is that alright?
          Hide
          Kamal Bahadur added a comment -

          Hi Mike, I am fine with that. Please go ahead with your work.

          Show
          Kamal Bahadur added a comment - Hi Mike, I am fine with that. Please go ahead with your work.
          Hide
          Brock Noland added a comment -

          @Mike

          Yes, that is exactly the desire. Two fields could be added to the metadata of the log files describing the codec, mode (put|take|commit|rollback), or other metadata.

          Brock

          Show
          Brock Noland added a comment - @Mike Yes, that is exactly the desire. Two fields could be added to the metadata of the log files describing the codec, mode (put|take|commit|rollback), or other metadata. Brock
          Hide
          Mike Percy added a comment -

          Following is a proposal for the File Channel encryption design:

          • Build on top of FLUME-1487 (FileChannel format needs to be extensible) and store the relevant encryption metadata at a log file level.
            • Record the encryption scheme used
          • Make the encryption/decryption mechanism pluggable (the scope of this JIRA is a set of interfaces and a single implementation).
          • Cipher: I believe symmetric encryption makes sense for this implementation; asymmetric encryption is too slow. If using a block cipher ("AES/CBC/PKCS5Padding" seems like a reasonable choice), ensure that the data in the cipher buffer gets flushed any time the log file is synced, using e.g. Cipher.doFinal()
          • Keystore: this implementation can assume jceks. The password to the KeyStore should likely live in its own plaintext file (this being preferable to storing it in the configuration file).
          • Expose any options that will operate correctly via the Flume configuration file; Don't allow option values that don't make any sense or will cause security issues or confusion.
          Show
          Mike Percy added a comment - Following is a proposal for the File Channel encryption design: Build on top of FLUME-1487 (FileChannel format needs to be extensible) and store the relevant encryption metadata at a log file level. Record the encryption scheme used Make the encryption/decryption mechanism pluggable (the scope of this JIRA is a set of interfaces and a single implementation). Cipher: I believe symmetric encryption makes sense for this implementation; asymmetric encryption is too slow. If using a block cipher ("AES/CBC/PKCS5Padding" seems like a reasonable choice), ensure that the data in the cipher buffer gets flushed any time the log file is synced, using e.g. Cipher.doFinal() Keystore: this implementation can assume jceks. The password to the KeyStore should likely live in its own plaintext file (this being preferable to storing it in the configuration file). Expose any options that will operate correctly via the Flume configuration file; Don't allow option values that don't make any sense or will cause security issues or confusion.
          Hide
          Ralph Goers added a comment -

          This is fine except the password for the keystore should not be in a file in clear text. It would be fine to have it be encrypted/decrypted using a key hardcoded in the code or to just use some simple algorithm so long as it isn't in the clear.

          Show
          Ralph Goers added a comment - This is fine except the password for the keystore should not be in a file in clear text. It would be fine to have it be encrypted/decrypted using a key hardcoded in the code or to just use some simple algorithm so long as it isn't in the clear.
          Hide
          Mike Percy added a comment -

          Thanks for the quick feedback Ralph! Why is having the password to the keystore in a plaintext file a problem? File access permissions could be used to restrict access to only the Flume user, like a private SSH key is protected. Encrypting it with some hard-coded key would not make it any more secure IMO.

          If we need to encrypt the KeyStore password itself, it seems like the key used for that encryption should be configurable, which would have to live in a KeyStore somewhere, and we kind of end up back at the same problem.

          Show
          Mike Percy added a comment - Thanks for the quick feedback Ralph! Why is having the password to the keystore in a plaintext file a problem? File access permissions could be used to restrict access to only the Flume user, like a private SSH key is protected. Encrypting it with some hard-coded key would not make it any more secure IMO. If we need to encrypt the KeyStore password itself, it seems like the key used for that encryption should be configurable, which would have to live in a KeyStore somewhere, and we kind of end up back at the same problem.
          Hide
          Brock Noland added a comment -

          FLUME-1487 (FileChannel format needs to be extensible) is progressing well.
          I think mike's design makes sense, a few notes:

          -We will have to call doFinal() on every event as we need the exact
          byte offset of the start of the next event for retrievals.

          -I also think we should use CTR instead of CBC as CBC requires the
          decryption of previous blocks before decrypting the current block.
          This will cause us problems as we pull the events out of the file in
          somewhat of a random order and there is no guarantee we will have
          previously decrypted the previous block. Because of a
          (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6634037) CTR
          must use no padding.

          -I see a few interfaces here, one to provide KeyStores, one to provide
          Encryptor/Decryptor, and the Encryptor/Decryptors themselves.

          The KeyStore interface is important because some users may not use a
          file based key store but use a centralized key management
          infrastructure.

          I've made some progress on this so I'd like to take this over.

          Show
          Brock Noland added a comment - FLUME-1487 (FileChannel format needs to be extensible) is progressing well. I think mike's design makes sense, a few notes: -We will have to call doFinal() on every event as we need the exact byte offset of the start of the next event for retrievals. -I also think we should use CTR instead of CBC as CBC requires the decryption of previous blocks before decrypting the current block. This will cause us problems as we pull the events out of the file in somewhat of a random order and there is no guarantee we will have previously decrypted the previous block. Because of a ( http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6634037 ) CTR must use no padding. -I see a few interfaces here, one to provide KeyStores, one to provide Encryptor/Decryptor, and the Encryptor/Decryptors themselves. The KeyStore interface is important because some users may not use a file based key store but use a centralized key management infrastructure. I've made some progress on this so I'd like to take this over.
          Hide
          Mike Percy added a comment -

          Hi Brock, CTR makes sense, since we have parallel writes taking place in the File Channel.

          I also agree about the KeyStores - we may even want to make the KeyStore provider Configurable.

          Since you've made progress on this and it's building on top of FLUME-1487, please go ahead.

          Show
          Mike Percy added a comment - Hi Brock, CTR makes sense, since we have parallel writes taking place in the File Channel. I also agree about the KeyStores - we may even want to make the KeyStore provider Configurable. Since you've made progress on this and it's building on top of FLUME-1487 , please go ahead.
          Hide
          Brock Noland added a comment -

          Patch from RB.

          Show
          Brock Noland added a comment - Patch from RB.
          Hide
          Brock Noland added a comment -

          Updated patch from RB

          Show
          Brock Noland added a comment - Updated patch from RB
          Hide
          Brock Noland added a comment -

          Marking Patch Available

          Show
          Brock Noland added a comment - Marking Patch Available
          Hide
          Brock Noland added a comment -

          Latest patch from RB.

          Show
          Brock Noland added a comment - Latest patch from RB.
          Hide
          Brock Noland added a comment -

          Latest patch from RB (just merged in latest FLUME-1487)

          Show
          Brock Noland added a comment - Latest patch from RB (just merged in latest FLUME-1487 )
          Hide
          Brock Noland added a comment -

          Attached is the latest patch (just rebased on the latest FLUME-1487 changes) and the test.keystore file which is binary.

          Show
          Brock Noland added a comment - Attached is the latest patch (just rebased on the latest FLUME-1487 changes) and the test.keystore file which is binary.
          Hide
          Brock Noland added a comment -

          Latest patch, addresses Mike's feedback.

          Show
          Brock Noland added a comment - Latest patch, addresses Mike's feedback.
          Hide
          Brock Noland added a comment -

          test.keystore needs to go in src/test/resources on commit

          Show
          Brock Noland added a comment - test.keystore needs to go in src/test/resources on commit
          Hide
          Mike Percy added a comment -

          Patch committed. Thanks Brock!

          Rev: d3c85b1d77584205b82b13126330cf17ce0f5ed9

          Show
          Mike Percy added a comment - Patch committed. Thanks Brock! Rev: d3c85b1d77584205b82b13126330cf17ce0f5ed9
          Hide
          Hudson added a comment -

          Integrated in flume-1.3.0 #8 (See https://builds.apache.org/job/flume-1.3.0/8/)
          FLUME-1424. File Channel should support encryption. (Revision 88a06409f902e442bf17d9a1c6cfad55c4de163d)

          Result = FAILURE
          mpercy : http://git-wip-us.apache.org/repos/asf/flume/repo?p=flume.git;a=summary&a=commit&h=88a06409f902e442bf17d9a1c6cfad55c4de163d
          Files :

          • flume-ng-channels/flume-file-channel/src/test/resources/test.keystore
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestTransactionEventRecordV3.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestAESCTRNoPaddingProvider.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestLogFile.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestJCEFileKeyProvider.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProviderType.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileV2.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProviderFactory.java
          • flume-ng-channels/flume-file-channel/src/main/proto/filechannel.proto
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileFactory.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/EncryptionConfiguration.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestFileChannelEncryption.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/ReplayHandler.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProvider.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/Log.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/TransactionEventRecord.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/AESCTRNoPaddingProvider.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestUtils.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/JCEFileKeyProvider.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/CipherProviderTestSuite.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/EncryptionTestUtils.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/CheckpointRebuilder.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileV3.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProviderType.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProviderFactory.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannel.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProvider.java
          Show
          Hudson added a comment - Integrated in flume-1.3.0 #8 (See https://builds.apache.org/job/flume-1.3.0/8/ ) FLUME-1424 . File Channel should support encryption. (Revision 88a06409f902e442bf17d9a1c6cfad55c4de163d) Result = FAILURE mpercy : http://git-wip-us.apache.org/repos/asf/flume/repo?p=flume.git;a=summary&a=commit&h=88a06409f902e442bf17d9a1c6cfad55c4de163d Files : flume-ng-channels/flume-file-channel/src/test/resources/test.keystore flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestTransactionEventRecordV3.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestAESCTRNoPaddingProvider.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestLogFile.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestJCEFileKeyProvider.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProviderType.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileV2.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProviderFactory.java flume-ng-channels/flume-file-channel/src/main/proto/filechannel.proto flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileFactory.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/EncryptionConfiguration.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestFileChannelEncryption.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/ReplayHandler.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProvider.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/Log.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/TransactionEventRecord.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/AESCTRNoPaddingProvider.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestUtils.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/JCEFileKeyProvider.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/CipherProviderTestSuite.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/EncryptionTestUtils.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/CheckpointRebuilder.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileV3.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProviderType.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProviderFactory.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannel.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProvider.java
          Hide
          Hudson added a comment -

          Integrated in flume-trunk #294 (See https://builds.apache.org/job/flume-trunk/294/)
          FLUME-1424. File Channel should support encryption. (Revision d3c85b1d77584205b82b13126330cf17ce0f5ed9)

          Result = FAILURE
          mpercy : http://git-wip-us.apache.org/repos/asf/flume/repo?p=flume.git;a=summary&a=commit&h=d3c85b1d77584205b82b13126330cf17ce0f5ed9
          Files :

          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileV3.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestJCEFileKeyProvider.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/ReplayHandler.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/JCEFileKeyProvider.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileV2.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
          • flume-ng-channels/flume-file-channel/src/test/resources/test.keystore
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProviderType.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/CipherProviderTestSuite.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/EncryptionConfiguration.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestTransactionEventRecordV3.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/AESCTRNoPaddingProvider.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/TransactionEventRecord.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestAESCTRNoPaddingProvider.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileFactory.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProviderFactory.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestUtils.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProvider.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/EncryptionTestUtils.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestFileChannelEncryption.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/Log.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProviderFactory.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProvider.java
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannel.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProviderType.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java
          • flume-ng-channels/flume-file-channel/src/main/proto/filechannel.proto
          • flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestLogFile.java
          • flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/CheckpointRebuilder.java
          Show
          Hudson added a comment - Integrated in flume-trunk #294 (See https://builds.apache.org/job/flume-trunk/294/ ) FLUME-1424 . File Channel should support encryption. (Revision d3c85b1d77584205b82b13126330cf17ce0f5ed9) Result = FAILURE mpercy : http://git-wip-us.apache.org/repos/asf/flume/repo?p=flume.git;a=summary&a=commit&h=d3c85b1d77584205b82b13126330cf17ce0f5ed9 Files : flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileV3.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestJCEFileKeyProvider.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/ReplayHandler.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/JCEFileKeyProvider.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileV2.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java flume-ng-channels/flume-file-channel/src/test/resources/test.keystore flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProviderType.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/CipherProviderTestSuite.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/EncryptionConfiguration.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestTransactionEventRecordV3.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/AESCTRNoPaddingProvider.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/TransactionEventRecord.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestAESCTRNoPaddingProvider.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFileFactory.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProviderFactory.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestUtils.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProvider.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/EncryptionTestUtils.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestFileChannelEncryption.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/Log.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/CipherProviderFactory.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProvider.java flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannel.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/encryption/KeyProviderType.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/LogFile.java flume-ng-channels/flume-file-channel/src/main/proto/filechannel.proto flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestLogFile.java flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/CheckpointRebuilder.java

            People

            • Assignee:
              Brock Noland
              Reporter:
              Arvind Prabhakar
            • Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development