Guest User

Untitled

a guest
Jan 17th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. if($result->status_cd == 1) {
  2. // Test JSON
  3. $final_response = '{"Name":"narayan"}';
  4.  
  5. //Step-1
  6. $key_size = 32; // 256 bits
  7. $encryption_key = openssl_random_pseudo_bytes($key_size);
  8. $unique_session_key = $encryption_key;
  9.  
  10. //Step-2
  11. $encrypt_data = $this->encryptDataFile($final_response, $unique_session_key);
  12.  
  13. //Step-3
  14. $hash_data = hash('sha256', $final_response, true);
  15.  
  16. //Step-4
  17. $encrypt_hash_data = $this->encryptDataFile($hash_data, $unique_session_key);
  18.  
  19. //Step-5
  20. $encrypt_public_key = $this->encryptEmsignerPublicKey($unique_session_key);
  21.  
  22. //Prepare data to send emsigner
  23. $final_emsigner_data = array('step-5' => $encrypt_public_key, 'step-2' => $encrypt_data, 'step-4' => $encrypt_hash_data);
  24. return $final_emsigner_data;
  25.  
  26. }
  27.  
  28. private function encryptEmsignerPublicKey($unique_session_key)
  29. {
  30. openssl_public_encrypt($unique_session_key, $encrypt_data, file_get_contents('certificate.cer') );
  31. return base64_encode($encrypt_data);
  32. }
  33.  
  34. private function encryptDataFile ($data, $key)
  35. {
  36. $iv_size = 16; // 128 bits
  37. $iv = openssl_random_pseudo_bytes($iv_size, $strong);
  38. return openssl_encrypt($data,"AES-256-CBC",$key, OPENSSL_RAW_DATA, $iv);
  39.  
  40. }
Add Comment
Please, Sign In to add comment