mcrypt_generic_init(): Iv size incorrect - PHP

This is a discussion on mcrypt_generic_init(): Iv size incorrect - PHP ; I have an odd php issue with mcrypt. I'm getting a lot of this type of error, but only sometimes: mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32 (note, the "supplied length: 0" is not always the same. sometimes ...

+ Reply to Thread
Results 1 to 10 of 10

mcrypt_generic_init(): Iv size incorrect

  1. Default mcrypt_generic_init(): Iv size incorrect

    I have an odd php issue with mcrypt.
    I'm getting a lot of this type of error, but only sometimes:

    mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32

    (note, the "supplied length: 0" is not always the same. sometimes it is
    1, 16, etc).

    It doesn't seem to affect the decoding of the file, but it is throwing a
    notice in to my error log. I've tried doing this:

    @mcrypt_generic_init($this->td, $key, $iv)

    but that doesn't stop it from throwing an error.

    The only thing I can think is that I have mcrypt_module_close($this->td)
    commented out because my code was dying with it...

    System:
    Linux w/ Apache 1.3.31
    PHP Version 4.3.4
    libmcrypt version 2.5.7


    Suggestions?

  2. Default Re: [PHP] mcrypt_generic_init(): Iv size incorrect

    Hi,

    Saturday, April 9, 2005, 3:35:21 AM, you wrote:
    MH> I have an odd php issue with mcrypt.
    MH> I'm getting a lot of this type of error, but only sometimes:

    MH> mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32

    MH> (note, the "supplied length: 0" is not always the same. sometimes it is
    MH> 1, 16, etc).

    MH> It doesn't seem to affect the decoding of the file, but it is throwing a
    MH> notice in to my error log. I've tried doing this:

    MH> @mcrypt_generic_init($this->td, $key, $iv)

    MH> but that doesn't stop it from throwing an error.

    MH> The only thing I can think is that I have
    MH> mcrypt_module_close($this->td)
    MH> commented out because my code was dying with it...

    MH> System:
    MH> Linux w/ Apache 1.3.31
    MH> PHP Version 4.3.4
    MH> libmcrypt version 2.5.7


    MH> Suggestions?


    I do this to set a zero iv

    $td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    $key = substr($secret, 0, mcrypt_enc_get_key_size ($td));
    $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    mcrypt_generic_init ($td, $key, $iv);

    --
    regards,
    Tom

  3. Default Re: [PHP] mcrypt_generic_init(): Iv size incorrect

    Do you do this on the encryption or the decryption section or both?


    Tom Rogers wrote:
    > Hi,
    >
    > Saturday, April 9, 2005, 3:35:21 AM, you wrote:
    > MH> I have an odd php issue with mcrypt.
    > MH> I'm getting a lot of this type of error, but only sometimes:
    >
    > MH> mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32
    >
    > MH> (note, the "supplied length: 0" is not always the same. sometimes it is
    > MH> 1, 16, etc).
    >
    > MH> It doesn't seem to affect the decoding of the file, but it is throwing a
    > MH> notice in to my error log. I've tried doing this:
    >
    > MH> @mcrypt_generic_init($this->td, $key, $iv)
    >
    > MH> but that doesn't stop it from throwing an error.
    >
    > MH> The only thing I can think is that I have
    > MH> mcrypt_module_close($this->td)
    > MH> commented out because my code was dying with it...
    >
    > MH> System:
    > MH> Linux w/ Apache 1.3.31
    > MH> PHP Version 4.3.4
    > MH> libmcrypt version 2.5.7
    >
    >
    > MH> Suggestions?
    >
    >
    > I do this to set a zero iv
    >
    > $td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    > $key = substr($secret, 0, mcrypt_enc_get_key_size ($td));
    > $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    > mcrypt_generic_init ($td, $key, $iv);
    >


  4. Default Re: [PHP] mcrypt_generic_init(): Iv size incorrect

    Do you do this on the encryption or the decryption section or both?


    Tom Rogers wrote:
    > Hi,
    >
    > Saturday, April 9, 2005, 3:35:21 AM, you wrote:
    > MH> I have an odd php issue with mcrypt.
    > MH> I'm getting a lot of this type of error, but only sometimes:
    >
    > MH> mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32
    >
    > MH> (note, the "supplied length: 0" is not always the same. sometimes it is
    > MH> 1, 16, etc).
    >
    > MH> It doesn't seem to affect the decoding of the file, but it is throwing a
    > MH> notice in to my error log. I've tried doing this:
    >
    > MH> @mcrypt_generic_init($this->td, $key, $iv)
    >
    > MH> but that doesn't stop it from throwing an error.
    >
    > MH> The only thing I can think is that I have
    > MH> mcrypt_module_close($this->td)
    > MH> commented out because my code was dying with it...
    >
    > MH> System:
    > MH> Linux w/ Apache 1.3.31
    > MH> PHP Version 4.3.4
    > MH> libmcrypt version 2.5.7
    >
    >
    > MH> Suggestions?
    >
    >
    > I do this to set a zero iv
    >
    > $td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    > $key = substr($secret, 0, mcrypt_enc_get_key_size ($td));
    > $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    > mcrypt_generic_init ($td, $key, $iv);
    >


  5. Default Re: [PHP] mcrypt_generic_init(): Iv size incorrect

    I get the following error when I try your suggestion:

    Unknown error type: [8] Undefined variable: iv

    Code:

    $key = md5($this->_cypherkey);
    $key = substr($key, 0, mcrypt_enc_get_key_size($this->td));
    $iv_size = mcrypt_enc_get_iv_size($this->td);
    #$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $iv = pack("a".$iv_size,$iv);

    Tom Rogers wrote:
    > Hi,
    >
    > Saturday, April 9, 2005, 3:35:21 AM, you wrote:
    > MH> I have an odd php issue with mcrypt.
    > MH> I'm getting a lot of this type of error, but only sometimes:
    >
    > MH> mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32
    >
    > MH> (note, the "supplied length: 0" is not always the same. sometimes it is
    > MH> 1, 16, etc).
    >
    > MH> It doesn't seem to affect the decoding of the file, but it is throwing a
    > MH> notice in to my error log. I've tried doing this:
    >
    > MH> @mcrypt_generic_init($this->td, $key, $iv)
    >
    > MH> but that doesn't stop it from throwing an error.
    >
    > MH> The only thing I can think is that I have
    > MH> mcrypt_module_close($this->td)
    > MH> commented out because my code was dying with it...
    >
    > MH> System:
    > MH> Linux w/ Apache 1.3.31
    > MH> PHP Version 4.3.4
    > MH> libmcrypt version 2.5.7
    >
    >
    > MH> Suggestions?
    >
    >
    > I do this to set a zero iv
    >
    > $td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    > $key = substr($secret, 0, mcrypt_enc_get_key_size ($td));
    > $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    > mcrypt_generic_init ($td, $key, $iv);
    >


  6. Default Re: [PHP] mcrypt_generic_init(): Iv size incorrect

    I get the following error when I try your suggestion:

    Unknown error type: [8] Undefined variable: iv

    Code:

    $key = md5($this->_cypherkey);
    $key = substr($key, 0, mcrypt_enc_get_key_size($this->td));
    $iv_size = mcrypt_enc_get_iv_size($this->td);
    #$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $iv = pack("a".$iv_size,$iv);

    Tom Rogers wrote:
    > Hi,
    >
    > Saturday, April 9, 2005, 3:35:21 AM, you wrote:
    > MH> I have an odd php issue with mcrypt.
    > MH> I'm getting a lot of this type of error, but only sometimes:
    >
    > MH> mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32
    >
    > MH> (note, the "supplied length: 0" is not always the same. sometimes it is
    > MH> 1, 16, etc).
    >
    > MH> It doesn't seem to affect the decoding of the file, but it is throwing a
    > MH> notice in to my error log. I've tried doing this:
    >
    > MH> @mcrypt_generic_init($this->td, $key, $iv)
    >
    > MH> but that doesn't stop it from throwing an error.
    >
    > MH> The only thing I can think is that I have
    > MH> mcrypt_module_close($this->td)
    > MH> commented out because my code was dying with it...
    >
    > MH> System:
    > MH> Linux w/ Apache 1.3.31
    > MH> PHP Version 4.3.4
    > MH> libmcrypt version 2.5.7
    >
    >
    > MH> Suggestions?
    >
    >
    > I do this to set a zero iv
    >
    > $td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    > $key = substr($secret, 0, mcrypt_enc_get_key_size ($td));
    > $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    > mcrypt_generic_init ($td, $key, $iv);
    >


  7. Default Re[2]: [PHP] mcrypt_generic_init(): Iv size incorrect

    Hi,

    Wednesday, April 13, 2005, 5:14:25 AM, you wrote:
    MH> Do you do this on the encryption or the decryption section or both?

    I do it on both, here is a class I use that may help:


    class encryptClass{
    var $secret;
    function encryptClass(){
    $this->secret = 'put secret here';
    }
    Function encode($id){
    $eid = $iv = 0;
    $len = strlen($id);
    $id = $len.'-'.$id;
    $td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    $key = substr($this->secret, 0, mcrypt_enc_get_key_size ($td));
    $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    mcrypt_generic_init ($td, $key, $iv);
    $eid = base64_encode(mcrypt_generic ($td, $id));
    mcrypt_generic_deinit($td);
    return $eid;
    }
    Function decode($eid){
    $id = $iv = 0;
    $td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    $key = substr($this->secret, 0, mcrypt_enc_get_key_size ($td));
    $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    mcrypt_generic_init ($td, $key, $iv);
    $id = mdecrypt_generic ($td, base64_decode($eid));
    $len = strtok($id,'-');
    $id = substr($id,(strlen($len)+1),$len);
    mcrypt_generic_deinit($td);
    return $id;
    }
    }


    ( I encode the length of the original string so I can trim the extra
    rubbish that deinit leaves behind as packing)

    --
    regards,
    Tom

  8. Default Re[2]: [PHP] mcrypt_generic_init(): Iv size incorrect

    Hi,

    Wednesday, April 13, 2005, 6:04:05 AM, you wrote:
    MH> I get the following error when I try your suggestion:

    MH> Unknown error type: [8] Undefined variable: iv

    MH> Code:

    $key = md5($this->>_cypherkey);
    MH> $key = substr($key, 0, mcrypt_enc_get_key_size($this->td));
    MH> $iv_size = mcrypt_enc_get_iv_size($this->td);
    MH> #$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    MH> $iv = pack("a".$iv_size,$iv);

    Yes I forgot to put $iv = 0; before that line.
    --
    regards,
    Tom

  9. Default Re: [PHP] mcrypt_generic_init(): Iv size incorrect

    So this solution does work, however it doesn't answer the question as to
    why this is occurring in the first place.
    Rather then finding a work around for it, I'd like to know why PHP /
    mcrypt is throwing the error. Is it an issue in the library itself?

    Tom Rogers wrote:
    > Hi,
    >
    > Saturday, April 9, 2005, 3:35:21 AM, you wrote:
    > MH> I have an odd php issue with mcrypt.
    > MH> I'm getting a lot of this type of error, but only sometimes:
    >
    > MH> mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32
    >
    > MH> (note, the "supplied length: 0" is not always the same. sometimes it is
    > MH> 1, 16, etc).
    >
    > MH> It doesn't seem to affect the decoding of the file, but it is throwing a
    > MH> notice in to my error log. I've tried doing this:
    >
    > MH> @mcrypt_generic_init($this->td, $key, $iv)
    >
    > MH> but that doesn't stop it from throwing an error.
    >
    > MH> The only thing I can think is that I have
    > MH> mcrypt_module_close($this->td)
    > MH> commented out because my code was dying with it...
    >
    > MH> System:
    > MH> Linux w/ Apache 1.3.31
    > MH> PHP Version 4.3.4
    > MH> libmcrypt version 2.5.7
    >
    >
    > MH> Suggestions?
    >
    >
    > I do this to set a zero iv
    >
    > $td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    > $key = substr($secret, 0, mcrypt_enc_get_key_size ($td));
    > $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    > mcrypt_generic_init ($td, $key, $iv);
    >


  10. Default Re: [PHP] mcrypt_generic_init(): Iv size incorrect

    So this solution does work, however it doesn't answer the question as to
    why this is occurring in the first place.
    Rather then finding a work around for it, I'd like to know why PHP /
    mcrypt is throwing the error. Is it an issue in the library itself?

    Tom Rogers wrote:
    > Hi,
    >
    > Saturday, April 9, 2005, 3:35:21 AM, you wrote:
    > MH> I have an odd php issue with mcrypt.
    > MH> I'm getting a lot of this type of error, but only sometimes:
    >
    > MH> mcrypt_generic_init(): Iv size incorrect; supplied length: 0, needed: 32
    >
    > MH> (note, the "supplied length: 0" is not always the same. sometimes it is
    > MH> 1, 16, etc).
    >
    > MH> It doesn't seem to affect the decoding of the file, but it is throwing a
    > MH> notice in to my error log. I've tried doing this:
    >
    > MH> @mcrypt_generic_init($this->td, $key, $iv)
    >
    > MH> but that doesn't stop it from throwing an error.
    >
    > MH> The only thing I can think is that I have
    > MH> mcrypt_module_close($this->td)
    > MH> commented out because my code was dying with it...
    >
    > MH> System:
    > MH> Linux w/ Apache 1.3.31
    > MH> PHP Version 4.3.4
    > MH> libmcrypt version 2.5.7
    >
    >
    > MH> Suggestions?
    >
    >
    > I do this to set a zero iv
    >
    > $td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
    > $key = substr($secret, 0, mcrypt_enc_get_key_size ($td));
    > $iv = pack("a".mcrypt_enc_get_iv_size($td),$iv);
    > mcrypt_generic_init ($td, $key, $iv);
    >


+ Reply to Thread