milleruntime edited a comment on pull request #1968:
URL: https://github.com/apache/accumulo/pull/1968#issuecomment-810574371


   > var decryptionContext = 
createRFileDecryptionContextForTableFromFileAndConfig({tableName, tableConfig, 
decryptParams});
   
   I was wondering what the user should put in `tableConfig` for decryption. 
Should it be a list of classes to use for decryption? That is where I was going 
with this PR... User sets 
`table.crypto.decrypters=CryptoClassA,CryptoClassB,OldCrypto`. Then when we 
read the decryptParams like you have:
   > var decryptParams = encryptedRFile.readCryptoHeader(file);
   
   We look at the class name written in the `decryptParams` and see if it 
matches one of the classes configured in `table.crypto.decrypters`. 
   
   Asked in another way... How do we prevent user from writing code that does 
bad things? Aka..
   <pre>
    @Override
   public FileDecrypter getFileDecrypter(CryptoEnvironment env) {
     //load bad class name by accident
     var decryptParams = env.getDecryptParams();
     String maliciousClassName = decryptParams.getClassName();
     return loadClass(maliciousClassName);
   }


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to