-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75272/#review227087
-----------------------------------------------------------


Ship it!




Ship It!

- Dhaval Shah


On Nov. 14, 2024, 2:42 p.m., Vikas Kumar wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/75272/
> -----------------------------------------------------------
> 
> (Updated Nov. 14, 2024, 2:42 p.m.)
> 
> 
> Review request for ranger, bhavik patel, Dhaval Shah, Madhan Neethiraj, 
> Pradeep Agrawal, and Sailaja Polavarapu.
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> RANGER-3641: New KMS API to generate EDEK and DEK in one requestto avoid two 
> trips to KMS
> 
> Many times client app creates EDEK when they need to encrypt any data. And at 
> that time, they need to make one call to get EDEK and subsequent call to 
> decrypt that EDEK to get plain DEK. And there it makes sense to have one API 
> that should return both EDEK and DEK together. 
> 
> I saw similar API in AWS KMS API, it returns both.
> 
> Existing generateEncryptionkey is still there, and can be used for bulk EDEK 
> generation, may be for not immediate consumption, or to keep in client 
> caching and decrypt it when required.
> 
> 
> Diffs
> -----
> 
>   kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMS.java 
> 5bc0e7132 
> 
> 
> Diff: https://reviews.apache.org/r/75272/diff/1/
> 
> 
> Testing
> -------
> 
> Testing:
> 
> 1. KMS build command is successful
> 2. I patched one of my internal cluster with dev jar ( that contains this 
> code) and performed following operation:
> 
> Step1: Create one Zone key, "dektestkey"
> Step2: Hit the new API to generate EDEK and corresponding DEK
> Request:   
> 
> curl -ivk  -H "Content-Type: application/json" -H  -X GET 
> 'http://apacheprtest.site:9292/kms/v1/key/dektestkey/_dek?user.name=keyadmin'
> 
> Response:
> 
> {
>   "edek" : {
>     "encryptedKeyVersion" : {
>       "material" : "gsndrW4VzpnTsC3PHC7sjw",
>       "name" : "dektestkey",
>       "versionName" : "EEK"
>     },
>     "versionName" : "dektestkey@0",
>     "iv" : "S4FpjpscEhf6ELWKRTG8OQ"
>   },
>   "dek" : {
>     "material" : "WiKLo1A79s-cGW5Sbb8pSw",
>     "name" : "dektestkey",
>     "versionName" : "EK"
>   }
> }
> 
> Step3: To cross check, I hit the existing decryptkey API with above EDEK 
> material and got the same DEK.
> 
> Req: 
> curl -ivk  -H "Content-Type: application/json" -H  -X POST --data 
> '{"name":"dektestkey","iv":"S4FpjpscEhf6ELWKRTG8OQ","material":"gsndrW4VzpnTsC3PHC7sjw"}'
>  
> 'http://ccycloud-1.dektest.root.comops.site:9292/kms/v1/keyversion/dektestkey@0/_eek?eek_op=decrypt&user.name=keyadmin'
> 
> 
> Res:
> {
>   "material" : "WiKLo1A79s-cGW5Sbb8pSw",
>   "name" : "dektestkey",
>   "versionName" : "EK"
> 
> }
> 
> 
> Thanks,
> 
> Vikas Kumar
> 
>

Reply via email to