Skip to content

Commit 8f755f2

Browse files
authored
Merge pull request #184 from rhenium/ky/cipher-pkcs5-keyivgen-validate-iter
cipher: validate iterations argument for Cipher#pkcs5_keyivgen
2 parents 33a67ac + 8bb88f1 commit 8f755f2

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

ext/openssl/ossl_cipher.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,8 @@ ossl_cipher_pkcs5_keyivgen(int argc, VALUE *argv, VALUE self)
321321
salt = (unsigned char *)RSTRING_PTR(vsalt);
322322
}
323323
iter = NIL_P(viter) ? 2048 : NUM2INT(viter);
324+
if (iter <= 0)
325+
rb_raise(rb_eArgError, "iterations must be a positive integer");
324326
digest = NIL_P(vdigest) ? EVP_md5() : GetDigestPtr(vdigest);
325327
GetCipher(self, ctx);
326328
EVP_BytesToKey(EVP_CIPHER_CTX_cipher(ctx), digest, salt,

test/test_cipher.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ def test_pkcs5_keyivgen
4444
s2 = cipher.update(pt) << cipher.final
4545

4646
assert_equal s1, s2
47+
48+
cipher2 = OpenSSL::Cipher.new("DES-EDE3-CBC").encrypt
49+
assert_raise(ArgumentError) { cipher2.pkcs5_keyivgen(pass, salt, -1, "MD5") }
4750
end
4851

4952
def test_info

0 commit comments

Comments
 (0)