Subsequent decrypt fails with file size 0









up vote
0
down vote

favorite












The following script works fine. The zip is encrypted, txt file created, and immediately decrypted successfully, and the new zip is created successfully.



However, if I run the decrypt portion only subsequently, it fails to decrypt the txt file. It returns an empty $original_plaintext variable and the final zip has size 0. The $key and $iv are not changed for the second run. Security is not the issue - I just need a scrambled text file and then need to be able to decrypt it later.



$key = "sometext"; 
$iv = "someothertext";
$cipher = "aes-128-gcm";
$tag = NULL;

$fileRoot = "sql_2018_11_10";

if (in_array($cipher, openssl_get_cipher_methods()))
// Encrypt
$plaintext = file_get_contents("tmp/$fileRoot.zip");
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
file_put_contents("tmp/enc_$fileRoot.txt", $ciphertext);

// Decrypt
$ciphertext = file_get_contents("tmp/enc_$fileRoot.txt");
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
file_put_contents("tmp/uenc_$fileRoot.zip", $original_plaintext);










share|improve this question





















  • I have tried several different combinations of : * Fixed IV and key * Fixed and non-fixed IV and key * Using zip and not using zip Why in each case will it successfully decrypt if it is immediately after the encrypt, but not if it's decrypt only? As for errors, I'm seeing error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length, but I'm using a 128-byte key, as recommended in the docs. How do I get it to decrypt?
    – MBourne
    2 days ago















up vote
0
down vote

favorite












The following script works fine. The zip is encrypted, txt file created, and immediately decrypted successfully, and the new zip is created successfully.



However, if I run the decrypt portion only subsequently, it fails to decrypt the txt file. It returns an empty $original_plaintext variable and the final zip has size 0. The $key and $iv are not changed for the second run. Security is not the issue - I just need a scrambled text file and then need to be able to decrypt it later.



$key = "sometext"; 
$iv = "someothertext";
$cipher = "aes-128-gcm";
$tag = NULL;

$fileRoot = "sql_2018_11_10";

if (in_array($cipher, openssl_get_cipher_methods()))
// Encrypt
$plaintext = file_get_contents("tmp/$fileRoot.zip");
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
file_put_contents("tmp/enc_$fileRoot.txt", $ciphertext);

// Decrypt
$ciphertext = file_get_contents("tmp/enc_$fileRoot.txt");
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
file_put_contents("tmp/uenc_$fileRoot.zip", $original_plaintext);










share|improve this question





















  • I have tried several different combinations of : * Fixed IV and key * Fixed and non-fixed IV and key * Using zip and not using zip Why in each case will it successfully decrypt if it is immediately after the encrypt, but not if it's decrypt only? As for errors, I'm seeing error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length, but I'm using a 128-byte key, as recommended in the docs. How do I get it to decrypt?
    – MBourne
    2 days ago













up vote
0
down vote

favorite









up vote
0
down vote

favorite











The following script works fine. The zip is encrypted, txt file created, and immediately decrypted successfully, and the new zip is created successfully.



However, if I run the decrypt portion only subsequently, it fails to decrypt the txt file. It returns an empty $original_plaintext variable and the final zip has size 0. The $key and $iv are not changed for the second run. Security is not the issue - I just need a scrambled text file and then need to be able to decrypt it later.



$key = "sometext"; 
$iv = "someothertext";
$cipher = "aes-128-gcm";
$tag = NULL;

$fileRoot = "sql_2018_11_10";

if (in_array($cipher, openssl_get_cipher_methods()))
// Encrypt
$plaintext = file_get_contents("tmp/$fileRoot.zip");
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
file_put_contents("tmp/enc_$fileRoot.txt", $ciphertext);

// Decrypt
$ciphertext = file_get_contents("tmp/enc_$fileRoot.txt");
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
file_put_contents("tmp/uenc_$fileRoot.zip", $original_plaintext);










share|improve this question













The following script works fine. The zip is encrypted, txt file created, and immediately decrypted successfully, and the new zip is created successfully.



However, if I run the decrypt portion only subsequently, it fails to decrypt the txt file. It returns an empty $original_plaintext variable and the final zip has size 0. The $key and $iv are not changed for the second run. Security is not the issue - I just need a scrambled text file and then need to be able to decrypt it later.



$key = "sometext"; 
$iv = "someothertext";
$cipher = "aes-128-gcm";
$tag = NULL;

$fileRoot = "sql_2018_11_10";

if (in_array($cipher, openssl_get_cipher_methods()))
// Encrypt
$plaintext = file_get_contents("tmp/$fileRoot.zip");
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
file_put_contents("tmp/enc_$fileRoot.txt", $ciphertext);

// Decrypt
$ciphertext = file_get_contents("tmp/enc_$fileRoot.txt");
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
file_put_contents("tmp/uenc_$fileRoot.zip", $original_plaintext);







php encryption






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 10 at 12:10









MBourne

6416




6416











  • I have tried several different combinations of : * Fixed IV and key * Fixed and non-fixed IV and key * Using zip and not using zip Why in each case will it successfully decrypt if it is immediately after the encrypt, but not if it's decrypt only? As for errors, I'm seeing error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length, but I'm using a 128-byte key, as recommended in the docs. How do I get it to decrypt?
    – MBourne
    2 days ago

















  • I have tried several different combinations of : * Fixed IV and key * Fixed and non-fixed IV and key * Using zip and not using zip Why in each case will it successfully decrypt if it is immediately after the encrypt, but not if it's decrypt only? As for errors, I'm seeing error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length, but I'm using a 128-byte key, as recommended in the docs. How do I get it to decrypt?
    – MBourne
    2 days ago
















I have tried several different combinations of : * Fixed IV and key * Fixed and non-fixed IV and key * Using zip and not using zip Why in each case will it successfully decrypt if it is immediately after the encrypt, but not if it's decrypt only? As for errors, I'm seeing error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length, but I'm using a 128-byte key, as recommended in the docs. How do I get it to decrypt?
– MBourne
2 days ago





I have tried several different combinations of : * Fixed IV and key * Fixed and non-fixed IV and key * Using zip and not using zip Why in each case will it successfully decrypt if it is immediately after the encrypt, but not if it's decrypt only? As for errors, I'm seeing error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length, but I'm using a 128-byte key, as recommended in the docs. How do I get it to decrypt?
– MBourne
2 days ago


















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238812%2fsubsequent-decrypt-fails-with-file-size-0%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238812%2fsubsequent-decrypt-fails-with-file-size-0%23new-answer', 'question_page');

);

Post as a guest














































































Popular posts from this blog

Top Tejano songwriter Luis Silva dead of heart attack at 64

ReactJS Fetched API data displays live - need Data displayed static

Evgeni Malkin