Hello,

EVP_EncryptInit.pod includes an example for "General encryption,
decryption function example using FILE I/O and RC2".  The code doesn't
compile right away, though, (a few variables are not prototyped or
declared) and needs a few minor tweaks (see attached).

-Jan

diff -burN openssl-0.9.8i.orig/doc/crypto/EVP_EncryptInit.pod 
openssl-0.9.8i/doc/crypto/EVP_EncryptInit.pod
--- openssl-0.9.8i.orig/doc/crypto/EVP_EncryptInit.pod  2005-04-15 
12:01:35.000000000 -0400
+++ openssl-0.9.8i/doc/crypto/EVP_EncryptInit.pod       2008-12-27 
14:35:33.000000000 -0500
@@ -458,8 +458,9 @@
  int do_crypt(FILE *in, FILE *out, int do_encrypt)
        {
        /* Allow enough space in output buffer for additional block */
-       inbuf[1024], outbuf[1024 + EVP_MAX_BLOCK_LENGTH];
+       unsigned char inbuf[1024], outbuf[1024 + EVP_MAX_BLOCK_LENGTH];
        int inlen, outlen;
+       EVP_CIPHER_CTX ctx;
        /* Bogus key and IV: we'd normally set these from
         * another source.
         */
@@ -467,7 +468,7 @@
        unsigned char iv[] = "12345678";
        /* Don't set key or IV because we will modify the parameters */
        EVP_CIPHER_CTX_init(&ctx);
-       EVP_CipherInit_ex(&ctx, EVP_rc2(), NULL, NULL, NULL, do_encrypt);
+       EVP_CipherInit_ex(&ctx, EVP_rc2_cbc(), NULL, NULL, NULL, do_encrypt);
        EVP_CIPHER_CTX_set_key_length(&ctx, 10);
        /* We finished modifying parameters so now we can set key and IV */
        EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, do_encrypt);

Attachment: pgpEOtrTg6v7o.pgp
Description: PGP signature

Reply via email to