Support PADDING_NONE for encryption too
authorLove Hornquist Astrand <lha@h5l.org>
Thu, 23 Sep 2010 18:11:00 +0000 (11:11 -0700)
committerLove Hornquist Astrand <lha@h5l.org>
Thu, 23 Sep 2010 18:11:00 +0000 (11:11 -0700)
lib/hx509/crypto.c

index 52098b326fde0ab2af6e5f38691d8fff5db22d6b..c2e5e70748f98fd0f441200c1b7f046418b93f4c 100644 (file)
@@ -2487,12 +2487,17 @@ hx509_crypto_encrypt(hx509_crypto crypto,
        goto out;
     }
 
-    if (EVP_CIPHER_block_size(crypto->c) == 1) {
+    assert(crypto->flags & PADDING_FLAGS);
+    if (crypto->flags & PADDING_NONE) {
        padsize = 0;
-    } else {
-       int bsize = EVP_CIPHER_block_size(crypto->c);
-       padsize = bsize - (length % bsize);
+    } else if (crypto->flags & PADDING_PKCS7) {
+       if (EVP_CIPHER_block_size(crypto->c) == 1) {
+       } else {
+           int bsize = EVP_CIPHER_block_size(crypto->c);
+           padsize = bsize - (length % bsize);
+       }
     }
+
     (*ciphertext)->length = length + padsize;
     (*ciphertext)->data = malloc(length + padsize);
     if ((*ciphertext)->data == NULL) {