Add cast5 ciphers to default provider
authorShane Lontis <shane.lontis@oracle.com>
Wed, 18 Sep 2019 08:55:11 +0000 (18:55 +1000)
committerShane Lontis <shane.lontis@oracle.com>
Wed, 18 Sep 2019 08:55:11 +0000 (18:55 +1000)
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9929)

crypto/evp/evp_enc.c
providers/common/include/internal/provider_algs.h
providers/default/ciphers/build.info
providers/default/ciphers/cipher_cast.h [new file with mode: 0644]
providers/default/ciphers/cipher_cast5.c [new file with mode: 0644]
providers/default/ciphers/cipher_cast5_hw.c [new file with mode: 0644]
providers/default/defltprov.c
test/recipes/30-test_evp.t
test/recipes/30-test_evp_data/evpciph_cast5.txt [new file with mode: 0644]

index b0eff2d..383480b 100644 (file)
@@ -239,6 +239,10 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
         case NID_idea_ecb:
         case NID_idea_cfb64:
         case NID_idea_ofb64:
+        case NID_cast5_cbc:
+        case NID_cast5_ecb:
+        case NID_cast5_cfb64:
+        case NID_cast5_ofb64:
             break;
         default:
             goto legacy;
index 9e0a96e..560a967 100644 (file)
@@ -128,6 +128,12 @@ extern const OSSL_DISPATCH idea128cbc_functions[];
 extern const OSSL_DISPATCH idea128ofb64_functions[];
 extern const OSSL_DISPATCH idea128cfb64_functions[];
 #endif /* OPENSSL_NO_IDEA */
+#ifndef OPENSSL_NO_CAST
+extern const OSSL_DISPATCH cast5128ecb_functions[];
+extern const OSSL_DISPATCH cast5128cbc_functions[];
+extern const OSSL_DISPATCH cast564ofb64_functions[];
+extern const OSSL_DISPATCH cast564cfb64_functions[];
+#endif /* OPENSSL_NO_CAST */
 
 extern const OSSL_DISPATCH tdes_ede3_ecb_functions[];
 extern const OSSL_DISPATCH tdes_ede3_cbc_functions[];
index 3722215..05e4555 100644 (file)
@@ -29,4 +29,9 @@ IF[{- !$disabled{idea} -}]
       cipher_idea.c cipher_idea_hw.c
 ENDIF
 
+IF[{- !$disabled{cast} -}]
+  SOURCE[../../../libcrypto]=\
+      cipher_cast5.c cipher_cast5_hw.c
+ENDIF
+
 INCLUDE[../../../libcrypto]=. ../../../crypto
diff --git a/providers/default/ciphers/cipher_cast.h b/providers/default/ciphers/cipher_cast.h
new file mode 100644 (file)
index 0000000..279f922
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/cast.h>
+#include "internal/ciphers/ciphercommon.h"
+
+typedef struct prov_cast_ctx_st {
+    PROV_CIPHER_CTX base;      /* Must be first */
+    union {
+        OSSL_UNION_ALIGN;
+        CAST_KEY ks;
+    } ks;
+} PROV_CAST_CTX;
+
+const PROV_CIPHER_HW *PROV_CIPHER_HW_cast5_cbc(size_t keybits);
+const PROV_CIPHER_HW *PROV_CIPHER_HW_cast5_ecb(size_t keybits);
+const PROV_CIPHER_HW *PROV_CIPHER_HW_cast5_ofb64(size_t keybits);
+const PROV_CIPHER_HW *PROV_CIPHER_HW_cast5_cfb64(size_t keybits);
diff --git a/providers/default/ciphers/cipher_cast5.c b/providers/default/ciphers/cipher_cast5.c
new file mode 100644 (file)
index 0000000..13d48ea
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Dispatch functions for cast cipher modes ecb, cbc, ofb, cfb */
+
+#include "cipher_cast.h"
+#include "internal/provider_algs.h"
+
+static OSSL_OP_cipher_freectx_fn cast5_freectx;
+static OSSL_OP_cipher_dupctx_fn cast5_dupctx;
+
+static void cast5_freectx(void *vctx)
+{
+    PROV_CAST_CTX *ctx = (PROV_CAST_CTX *)vctx;
+
+    OPENSSL_clear_free(ctx,  sizeof(*ctx));
+}
+
+static void *cast5_dupctx(void *ctx)
+{
+    PROV_CAST_CTX *in = (PROV_CAST_CTX *)ctx;
+    PROV_CAST_CTX *ret = OPENSSL_malloc(sizeof(*ret));
+
+    if (ret == NULL) {
+        ERR_raise(ERR_LIB_PROV, ERR_R_MALLOC_FAILURE);
+        return NULL;
+    }
+    *ret = *in;
+
+    return ret;
+}
+
+/* cast5128ecb_functions */
+IMPLEMENT_generic_cipher(cast5, CAST, ecb, ECB, EVP_CIPH_VARIABLE_LENGTH, 128, 64, 0, block)
+/* cast5128cbc_functions */
+IMPLEMENT_generic_cipher(cast5, CAST, cbc, CBC, EVP_CIPH_VARIABLE_LENGTH, 128, 64, 64, block)
+/* cast564ofb64_functions */
+IMPLEMENT_generic_cipher(cast5, CAST, ofb64, OFB, EVP_CIPH_VARIABLE_LENGTH, 64, 8, 64, stream)
+/* cast564cfb64_functions */
+IMPLEMENT_generic_cipher(cast5, CAST, cfb64,  CFB, EVP_CIPH_VARIABLE_LENGTH, 64, 8, 64, stream)
diff --git a/providers/default/ciphers/cipher_cast5_hw.c b/providers/default/ciphers/cipher_cast5_hw.c
new file mode 100644 (file)
index 0000000..227e90d
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include "cipher_cast.h"
+
+static int cipher_hw_cast5_initkey(PROV_CIPHER_CTX *ctx,
+                                   const unsigned char *key, size_t keylen)
+{
+    PROV_CAST_CTX *bctx =  (PROV_CAST_CTX *)ctx;
+
+    CAST_set_key(&(bctx->ks.ks), keylen, key);
+    return 1;
+}
+
+# define PROV_CIPHER_HW_cast_mode(mode, UCMODE)                                \
+IMPLEMENT_CIPHER_HW_##UCMODE(mode, cast5, PROV_CAST_CTX, CAST_KEY,             \
+                             CAST_##mode)                                      \
+static const PROV_CIPHER_HW cast5_##mode = {                                   \
+    cipher_hw_cast5_initkey,                                                   \
+    cipher_hw_cast5_##mode##_cipher                                            \
+};                                                                             \
+const PROV_CIPHER_HW *PROV_CIPHER_HW_cast5_##mode(size_t keybits)              \
+{                                                                              \
+    return &cast5_##mode;                                                      \
+}
+
+PROV_CIPHER_HW_cast_mode(cbc, CBC)
+PROV_CIPHER_HW_cast_mode(ecb, ECB)
+PROV_CIPHER_HW_cast_mode(ofb64, OFB)
+PROV_CIPHER_HW_cast_mode(cfb64, CFB)
index cd91ba7..a6a6c9f 100644 (file)
@@ -201,6 +201,12 @@ static const OSSL_ALGORITHM deflt_ciphers[] = {
     { "IDEA-OFB", "default=yes", idea128ofb64_functions },
     { "IDEA-CFB", "default=yes", idea128cfb64_functions },
 #endif /* OPENSSL_NO_IDEA */
+#ifndef OPENSSL_NO_CAST
+    { "CAST5-ECB", "default=yes", cast5128ecb_functions },
+    { "CAST5-CBC", "default=yes", cast5128cbc_functions },
+    { "CAST5-OFB", "default=yes", cast564ofb64_functions },
+    { "CAST5-CFB", "default=yes", cast564cfb64_functions },
+#endif /* OPENSSL_NO_CAST */
     { NULL, NULL, NULL }
 };
 
index 1a4f126..8c21244 100644 (file)
@@ -35,6 +35,9 @@ my @defltfiles = qw( evpencod.txt evpkdf.txt evppkey_kdf.txt evpmac.txt
 my @ideafiles = qw( evpciph_idea.txt );
 push @defltfiles, @ideafiles unless disabled("idea");
 
+my @castfiles = qw( evpciph_cast5.txt );
+push @defltfiles, @castfiles unless disabled("cast");
+
 plan tests => (scalar(@configs) * scalar(@files)) + scalar(@defltfiles) + 1;
 
 my $infile = bldtop_file('providers', platform->dso('fips'));
diff --git a/test/recipes/30-test_evp_data/evpciph_cast5.txt b/test/recipes/30-test_evp_data/evpciph_cast5.txt
new file mode 100644 (file)
index 0000000..37600e6
--- /dev/null
@@ -0,0 +1,385 @@
+#
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+Title = CAST5 Test vectors (from https://github.com/pyca/cryptography)
+
+Cipher = CAST5-CBC
+Key = 1f8e4973953f3fb0bd6b16662e9a3c17
+IV = 2fe2b333ceda8f98
+Plaintext = 45cf12964fc824ab76616ae2f4bf0822
+Ciphertext = 327c198b9d0a59456a2194bd21fc3ff0
+
+Cipher = CAST5-CBC
+Key = 0700d603a1c514e46b6191ba430a3a0c
+IV = aad1583cd91365e3
+Plaintext = 068b25c7bfb1f8bdd4cfc908f69dffc5ddc726a197f0e5f720f730393279be91
+Ciphertext = f5ce00a3ba73e5a289789783c34787e11d27859beac26bb53dc732f03c80c548
+
+Cipher = CAST5-CBC
+Key = 3348aa51e9a45c2dbe33ccc47f96e8de
+IV = 19153c673160df2b
+Plaintext = 9b7cee827a26575afdbb7c7a329f887238052e3601a7917456ba61251c214763d5e1847a6ad5d54127a399ab07ee3599
+Ciphertext = 3c033e10fad0c4ce1e62e2a91488090947c5e0ac0dd5f55c1b15b0b02fa7cfd20f61b02d67ea9f326c5475447dee69bf
+
+Cipher = CAST5-CBC
+Key = b7f3c9576e12dd0db63e8f8fac2b9a39
+IV = c80f095d8bb1a060
+Plaintext = 9ac19954ce1319b354d3220460f71c1e373f1cd336240881160cfde46ebfed2e791e8d5a1a136ebd1dc469dec00c4187722b841cdabcb22c1be8a14657da200e
+Ciphertext = 219e4a20d3fcffa9c5d3b74038f2147ff3baf9c828bff134dfc1655ddec01120dc59069682e1fea35ce4dc2d1ee7e15929bdcaeddb0e2894fd21e1a95cff853f
+
+Cipher = CAST5-CBC
+Key = b6f9afbfe5a1562bba1368fc72ac9d9c
+IV = 3f9d5ebe250ee7ce
+Plaintext = db397ec22718dbffb9c9d13de0efcd4611bf792be4fce0dc5f25d4f577ed8cdbd4eb9208d593dda3d4653954ab64f05676caa3ce9bfa795b08b67ceebc923fdc89a8c431188e9e482d8553982cf304d1
+Ciphertext = 9a489a104fece86017fa9e8bfa66322a07c940dc2709f4ed7aa85343449a774880b977eb3a95c797593f38a52009095f4792ce957ec95866739ab7ee520938d11f6601036691aea9a83948c00c1a2fb3
+
+Cipher = CAST5-CBC
+Key = bbe7b7ba07124ff1ae7c3416fe8b465e
+IV = 7f65b5ee3630bed6
+Plaintext = 2aad0c2c4306568bad7447460fd3dac054346d26feddbc9abd9110914011b4794be2a9a00a519a51a5b5124014f4ed2735480db21b434e99a911bb0b60fe0253763725b628d5739a5117b7ee3aefafc5b4c1bf446467e7bf5f78f31ff7caf187
+Ciphertext = 3cc5a34d2592daa6d8bda161a349b52a1dcb8899654bb15ff295ab05ff666c1b31184801033e374e1f0f4f08f745a9af688f3d869ca8362d7e3b34c6dca259a3c14033f1c4f15c106552ac2cd3e953234bafefac74df0cb8757ab1d46e4b8914
+
+Cipher = CAST5-CBC
+Key = 89a553730433f7e6d67d16d373bd5360
+IV = f724558db3433a52
+Plaintext = 807bc4ea684eedcfdcca30180680b0f1ae2814f35f36d053c5aea6595a386c1442770f4d7297d8b91825ee7237241da8925dd594ccf676aecd46ca2068e8d37a3a0ec8a7d5185a201e663b5ff36ae197110188a23503763b8218826d23ced74b31e9f6e2d7fbfa6cb43420c7807a8625
+Ciphertext = ab1d2225e541a27a00e8e7a698f12d5044eac004b5c1362dd9df4c484ec1e7f22be8946f5a1c8450c5a7e3fd319af94c17dd3472ec8c0a52a5cbcb112bb5fb467511afb58e9f4b5fdbbb0c64f39b31c968582d06b980f05dac45ee0f6b30144bf41aa1582db3d669c0061eba42f591f1
+
+Cipher = CAST5-CBC
+Key = c491ca31f91708458e29a925ec558d78
+IV = 9ef934946e5cd0ae
+Plaintext = cb6a787e0dec56f9a165957f81af336ca6b40785d9e94093c6190e5152649f882e874d79ac5e167bd2a74ce5ae088d2ee854f6539e0a94796b1e1bd4c9fcdbc79acbef4d01eeb89776d18af71ae2a4fc47dd66df6c4dbe1d1850e466549a47b636bcc7c2b3a62495b56bb67b6d455f1eebd9bfefecbca6c7f335cfce9b45cb9d
+Ciphertext = 37fbb13aedae35151641acb2db6df6044e7c860320a1e9ee4977ba9ebbecbcaa995ea76cdbb9d3ea017ff3d9d650befdb4b35c98ae444b762432b5fd2a172b30ed879044bd870f9bd9f1e90aa89fe08b8c39b06890e816f5d21069f591cc2f656694d1acb0de7273f5c16a6dd69d3c77789b11b7450eb524d9f98640ac855f8a
+
+Cipher = CAST5-CBC
+Key = f6e87d71b0104d6eb06a68dc6a71f498
+IV = 1c245f26195b76eb
+Plaintext = f82bef3c73a6f7f80db285726d691db6bf55eec25a859d3ba0e0445f26b9bb3b16a3161ed1866e4dd8f2e5f8ecb4e46d74a7a78c20cdfc7bcc9e479ba7a0caba9438238ad0c01651d5d98de37f03ddce6e6b4bd4ab03cf9e8ed818aedfa1cf963b932067b97d776dce1087196e7e913f7448e38244509f0caf36bd8217e15336d35c149fd4e41707893fdb84014f8729
+Ciphertext = 2edff012cd4cb447f58c00391c86e187d0d9a70b800f12bcb0436e423c21adb7eafcae0833b74228e01784b02de552e10a89fbd272b89aadf4316b9fe10917e8fb9c959fb00b920c1bce4517cd37458ef3f51a6c27366339051adc47147f375b5ec63d84c1e5cc386babc24fc4ee4dec507c5e9f5d6631adad59b7464b4950abf2c7af2f9599b2a371616469a55e0ffb
+
+Cipher = CAST5-CBC
+Key = 2c14413751c31e2730570ba3361c786b
+IV = 1dbbeb2f19abb448
+Plaintext = 40d930f9a05334d9816fe204999c3f82a03f6a0457a8c475c94553d1d116693adc618049f0a769a2eed6a6cb14c0143ec5cccdbc8dec4ce560cfd206225709326d4de7948e54d603d01b12d7fed752fb23f1aa4494fbb00130e9ded4e77e37c079042d828040c325b1a5efd15fc842e44014ca4374bf38f3c3fc3ee327733b0c8aee1abcd055772f18dc04603f7b2c1ea69ff662361f2be0a171bbdcea1e5d3f
+Ciphertext = cc16f1685b309c380fa0a6556a604040a3e6eb326f1884b7c5d85d5bfdf925c96d0621e69b1f601463d23efdee60d531211c638ffca1134ddd70fa21d65b30fb462af045d32547acafbfb9c9c40e5e66bbcd23abf7adb3239da666a220a6b79dc335c2adb11559de7077348af3dd551374d95a800bed393cc3d12b220eca16564100373f6d4c422e1f94d6f82b38431a7bb8e13750e7f09afdf6677fb9cb2077
+
+Cipher = CAST5-CBC
+Key = 6a7082cf8cda13eff48c8158dda206ae
+IV = bd4172934078c201
+Plaintext = 940bc76d61e2c49dddd5df7f37fcf105
+Ciphertext = 431c2991b6388feb25ac695408c0b5ab
+
+Cipher = CAST5-CBC
+Key = 625eefa18a4756454e218d8bfed56e36
+IV = 73d9d0e27c2ec568
+Plaintext = 360dc1896ce601dfb2a949250067aad96737847a4580ede2654a329b842fe81e
+Ciphertext = 6da475bb7ca9345d9d321c2e523a4c42f281df4529264da2e95d3616037a8b7a
+
+Cipher = CAST5-CBC
+Key = fd6e0b954ae2e3b723d6c9fcae6ab09b
+IV = f08b65c9f4dd9500
+Plaintext = a206385945b21f812a9475f47fddbb7fbdda958a8d14c0dbcdaec36e8b28f1f6ececa1ceae4ce17721d162c1d42a66c1
+Ciphertext = ca71fa129c94f5f67ad8928b70b788b4d621fef07aead8ae5aecbfc9027651bf1888cc4459627ff8c7a5383f56f95b87
+
+Cipher = CAST5-CBC
+Key = 7b1ab9144b0239315cd5eec6c75663bd
+IV = 0b1e74f45c17ff30
+Plaintext = b968aeb199ad6b3c8e01f26c2edad444538c78bfa36ed68ca76123b8cdce615a01f6112bb80bfc3f17490578fb1f909a52e162637b062db04efee291a1f1af60
+Ciphertext = 5570f2e5fc0390d718adbed7e3ef74bf390317936846438190e9cc8424ba6c6f026ba29a6980a15fd090a8b6ee4a182e3de0817862b05b9cf2202ed6421fe0b6
+
+Cipher = CAST5-CBC
+Key = 36466b6bd25ea3857ea42f0cac1919b1
+IV = 7186fb6bdfa98a16
+Plaintext = 999983467c47bb1d66d7327ab5c58f61ddb09b93bd2460cb78cbc12b5fa1ea0c5f759ccc5e478697687012ff4673f6e61eecaeda0ccad2d674d3098c7d17f887b62b56f56b03b4d055bf3a4460e83efa
+Ciphertext = 551db27bab09919fbb3f257080c1972e4297a37cb5c77b14c2622a476914b95e726b0814172e3189bf3b93adef6ef8eedddd2917793e04f4ba0d57503f426503d624f65d0b1e8b9f62d2bf08c752c90c
+
+Cipher = CAST5-CBC
+Key = 89373ee6e28397640d5082eed4123239
+IV = 1a74d7c859672c80
+Plaintext = 45efd00daa4cdc8273ef785cae9e944a7664a2391e1e2c449f475acec0124bbc22944331678617408a1702917971f4654310ffb9229bec6173715ae512d37f93aaa6abf009f7e30d65669d1db0366b5bce4c7b00f871014f5753744a1878dc57
+Ciphertext = cb373a6d2f2463b81b4bfece800c6a0d1afebbf5dff76c67cab44844b6c2569c59770f569efa6dd26d74aa1f24999edcfb979db7a34a4155367dab091d9306c4a89acf932d442bb4ca70bef3b6c0866fc79f29d24af40e1e5f9626d13f752fa8
+
+Cipher = CAST5-CBC
+Key = bab0cceddc0abd63e3f82e9fbff7b8aa
+IV = 68b9140f300490c5
+Plaintext = c5585ff215bbb73ba5393440852fb199436de0d15e55c631f877670aa3eda9f672eb1f876f09544e63558436b8928000db2f02a5ad90f95b05ac4cf49e198e617e7678480fdf0efacc6aae691271e6cdd3541ebf719a1ccaedb24e2f80f92455dd5910cb5086b0960a3942ec182dcbd7
+Ciphertext = 3580a9b62d3ac4798ad351a53efdc98b5f4e2eb04e19d0328ee0931a0647172cb9596ff7441c78625fcccfa1c0e579c811142441253a169914b3435f2e4d47ccca4151d6d0c9399071e23879cb5f355659bdca594c9c59039c9ec90f87bfed3c830d624298681e5523d537ab58a0f340
+
+Cipher = CAST5-CBC
+Key = 9c702898efa44557b29ed283f5bc0293
+IV = cec6e1b82e8b2a59
+Plaintext = 1d1f8d81bdc3e2c7cb057f408e6450000c5aaed3260ff1e87fbb6f324df6887ffd8f78d7e2a04c9ed9deda9d64482d2b002f4a2b78d8b4f691875c8295d4a64b22257ceaf713ed2f4b92530d7ad7151d629acda882b4829577a43990b0948c1149c22fe4273656d1b08833930e8b06709a94579a78fc220f7057bbc1fa9f6563
+Ciphertext = be790efc9fb2fd205402cb355ecf881ee7dc7d4cf19441374c37c3cb4fedd6a1996a703bc42b88c2c93adb0628b39483cc8f6e26a1f1fbcef685f6c4640b85922540ae5c263428e531847f7fc5cd8c8ed069b4dc3c0f23f89edebaee567c4268cb78710803b263832ef74259885470bbee6fe6f1997f84fb88dbe17860b52dce
+
+Cipher = CAST5-CBC
+Key = 5674636dbdb38f705f0b08c372ef4785
+IV = 3f20ce0509b57420
+Plaintext = 6d40fd2f908f48ce19241b6b278b1b1676dffd4a97ce9f8a1574c33bc59237deb536bee376fd6c381e6987700e39283aa111cf1a59f26fae6fb6700bf012646a2ab80239bf5e1632329043aa87d7911978b36523a2bc0bed9a9737ccf7a00baa2f3822b4e9e742e168e7069290705fed2eb63aa044b78f97dd33a8d6b24741ec1fd8c8db79d93b884e762dba0f406961
+Ciphertext = b1793ca5c3b6ad612d5616841d9c281ed4ba2a8355caffb122184cb01f18102c5b0837d316e76dbcd93b70fa3dc6b741aa1262f976afa5807832f87e77156a6c9eadf2b986d3cd29a6452948ad818d2c864faf352d0002e2b824de9a00dc230cb530fb6b19195aeae9d2f6b032bff28f5cf483f7835310f880afa6d9210666b6c2c121a51abc86cbe9468ba423944409
+
+Cipher = CAST5-CBC
+Key = 97a1025529b9925e25bbe78770ca2f99
+IV = d4b4eab92aa9637e
+Plaintext = e8b89150d8438bf5b17449d6ed26bd72127e10e4aa57cad85283e8359e089208e84921649f5b60ea21f7867cbc9620560c4c6238db021216db453c9943f1f1a60546173daef2557c3cdd855031b353d4bf176f28439e48785c37d38f270aa4a6faad2baabcb0c0b2d1dd5322937498ce803ba1148440a52e227ddba4872fe4d81d2d76a939d24755adb8a7b8452ceed2d179e1a5848f316f5c016300a390bfa7
+Ciphertext = 78b56a69ffcb77d3a848ad2ccb9b67263d9d9668936b040d5a0fb514013fa4dc012f7ccb54c0d30b764d96ff5edf70d4c90d95015c2555656581bfbf7c13a86b8254ffd177246938cb706abdb9ff6e752a763e36c6102a124683695dba4bab2bd8fc2100b99734f2bf4de56c0a3f3b701593b9efdbcb1cc4bc220d2ecbbf5d8a5a13aab7fd35d923cefc87e5a97587e5903a5af0b00e3d747435ad495c55155b
+
+Cipher = CAST5-CFB
+Key = 085b8af6788fa6bc1a0b47dcf50fbd35
+IV = 58cb2b12bb52c6f1
+Plaintext = 4b5a872260293312eea1a570fd39c788
+Ciphertext = 453d00cb11e1cf4e52ee11c1c22cd6b6
+
+Cipher = CAST5-CFB
+Key = 701ccc4c0e36e512ce077f5af6ccb957
+IV = 5337ddeaf89a00dd
+Plaintext = cc1172f2f80866d0768b25f70fcf6361aab7c627c8488f97525d7d88949beeea
+Ciphertext = 0cb41e41b55c3aa4f7a002e7ffbe438897769b9cb77e7a8ff9237d8e066fc64f
+
+Cipher = CAST5-CFB
+Key = 0a8e8876c96cddf3223069002002c99f
+IV = b125a20ecd79e8b5
+Plaintext = 4fd0ecac65bfd321c88ebca0daea35d2b061205d696aab08bea68320db65451a6d6c3679fdf633f37cf8ebcf1fa94b91
+Ciphertext = 8feace1e2d6aedf53e779ee3d62e3635a2d1234802665bc34c8be46f397e04aecaea6045f3d0194ea9002dfa358ed390
+
+Cipher = CAST5-CFB
+Key = b9ba9fa32cc491d8ac2beb5f99193d57
+IV = 95511452b71e53e9
+Plaintext = b40382705aaeea41097c309da6cd06010f15e09c0130fa4b3af69cc8da109d1f0f0a2661f1a8b89bab7e7009dcbb8a883d46254a830c45cd87981e0ea4e490fa
+Ciphertext = 6774ade6984392eaf670dc2f8c2397e87af5c850325376d9230cf622d7f0a0fd0a4a0c68565c9efdaf58c2aec18e352a315a0f9ca6beeb8e1bf4dfb673768f0e
+
+Cipher = CAST5-CFB
+Key = 5947bbd78b06bb5ea2fc67ed7b24216e
+IV = 8e4722ad2230b15f
+Plaintext = 9e69423653c20c982794ed35d63c1a78e8ac14f37e1888ae4bf273bfe119891b2e4ed8ac46e7a9a463c7a710298d43b02f0c5606bcfc08adceeef2ec61867f8bede498e53163803f2f86fc58782fb841
+Ciphertext = f15a5b0a9f323931149fa5549f98a2cd14995a177910644dbb10fc1f6cfb281d4cf09958a5bcb23931640ca932ec50fd67e85532fe5a89a736b1027cc0423a4b5d609d6ee91fddd8b0921fc8cb6f2044
+
+Cipher = CAST5-CFB
+Key = abce650e78f969b3b210151c74117fd2
+IV = bc4659fbb7073c1f
+Plaintext = 322eae07df5ad2ddd64bba34e42d30c1b884f842e71efa123345a3fb0c39884c57dd4c2c6fb0c42e69ff5a269d59af3a6144853c182edb376ca65947d7ccefae6806ba25c4f527706ba85a353c0fd10e3cb244dd93a2d060d7b055058dde1dff
+Ciphertext = a03ddffb19dbfae5dc4190382c88b57ece48a562adb1d2a97554475430c30c174cd58cb05f04d4ca6ca07b1413735e4c192157af2738de438fd4e8544e32e5476645a9eae06b097ae624100f1294c1870bb48910929166d200bd12f4b0b34a6e
+
+Cipher = CAST5-CFB
+Key = 9f56e19b09dd3fee0e110f71e9967b7a
+IV = 1155cf4231bf7ac5
+Plaintext = ad1e4d3162a5084f581117639a13fc35df5449625ffe0f01e57d9a8726875be8515926ffe7449e30cd69ed4ca0c1b8b4486051c2d0fa2f6474a69c0afce2aec349d778a22edf81678145765b714c1b7c197287da56f59141d6978618729e1d89be20ace3de7d9b3c9b2d195ab6bc0fd4
+Ciphertext = ae27a1f299072d0bf7ea533d6ef2b490b78fa926bc5e7195300a2676b8e8a54bacac00d91c1f734ec959c2260dcb123e22b4d10cb810625dff0810f570755cdc520c3eaaa86412b1b382f4ca6c25953144d8a959ee9db4771aad2a1dfc812e3f0016d75d95168629be284adf3734c0b6
+
+Cipher = CAST5-CFB
+Key = 31c485c996d6ceb2d17e0aa05b2490e4
+IV = 8c37f33405051b4c
+Plaintext = ac68de6a2c2144c6b4fd975a8dec93447391e7c9a4fde63d36be7f23ad186f96cd92b5e8adb546880d100329e97fe8204fad860e6dd8b3c0eed4805387536b9ccc63d6c74938b83dce2c93cc0a04a6025b7563d9e5e7239ae27819fb3844848a51e4294f273401ad9e592f8a170334b042f0667233b29f92b9b13262eb73232a
+Ciphertext = 0fa7effeec07717c49fc5bfa2e0dcd96b3bb5ed3080171621c67bbaf795a06bc4aa8fcb82217ff3f164a8abe0a92f9f9baf05809962b2a684eb6acdaa3a0935e298c8e23e1f1a19cd3cf174c92ff07df0541bc2fedbedcf721f11e398dabbcd3cd1b5842e8a8a117b7f97ee7d17b4a7c7a9126eefb45ca7d3e76d8240f64fa92
+
+Cipher = CAST5-CFB
+Key = 556ccfa360ecb5025032dddb124cad4d
+IV = d54c6fdcc85dc0a2
+Plaintext = 71fbf180effac3dca0d69d40e4017dbe50455396f9fb6507ef7df26507de156cded8edd41a05fb25f352cbcdf3b2d770f90fa87f84863e0c2ed3b2dd770a1abfc489ad1ca82a28d061bd7039a6b5788da021657136def0c78d0b0cc7cfbec9512cf579811fd01185f3fdd2ab857328be4b63d293956b43df130e484b9861eccb1d06992b095e7febb0fb394c1954aeab
+Ciphertext = eea7b5280a023d240e01e428eb566ef6ce709de1e961fb45256f453b4c63a8adcb3cd22fb58c6d091bcc91bf57e2d09f3290658a4a72af2427d338e4b559a0598a0983edbcf5c441540ca8d43a91c3623f2cfa604ac002c7e95e9ca4e3d685ba62b862a6de78724074261fe6e5094dc18db65b64b914f5125ba52b92a55719ab66e9fb4d1032419ede1d51123277dd43
+
+Cipher = CAST5-CFB
+Key = 7cb81fc4b203b0fa9bec49759bd515c2
+IV = 4d5e2fa3bf73f488
+Plaintext = 362789b376d85eb8181d4eeea52d42e873ce7741c11a2f820383a7457b15489b09fb21ac4445959dc9e851b7d40682c50d7044bda46a5da39fae2bab73b3db9ed22edc7ec5da936dfa7451cb5f0a829ff0762738cc2686148f1e1f00dc3fe38139c9a173201fc1f052ca34736fc1ab3dc4e707f864d6119b7adb6c8ddd41c80de5d357d17e9c85ed7af1e4f72cb2656932ccce469202680109eef89a9f42f10a
+Ciphertext = f24802e7d3d3fc2f487a48caa63d3b1c97856aff1f25ebe2a5579422fb75c0eff313ad93e21f667048479646b547716ec00de0686c7fcaa7352175034e4347f4552872f38c0339a70538226a0155ea26cb46bc98d0341122bfaeff3ed23eb003824e239717de4088441b5abd780bc9f10570d36e5123a6adfad601845005a7b0ee80e7de92991f931e2a52379da40ba40e6c79ff6817de63191e31570722d7d7
+
+Cipher = CAST5-CFB
+Key = beb622d0228cde29b342bbcf4c1c83b4
+IV = 75c282fa581d9c67
+Plaintext = 860476c81685b58e71e2599efe083ce5
+Ciphertext = 3f08c279175f0eb1b66c991c650735c7
+
+Cipher = CAST5-CFB
+Key = c4666081e0b0eddb10a9a607c807378f
+IV = 5f23623288e4a41b
+Plaintext = 2fd02dab9054248073ebc0b07aed383756ccfa4fa6298722775be6a9b4ed27a5
+Ciphertext = cba9c6b7a6672071031aa237a602996896e31a110bae1870d000768a79f661aa
+
+Cipher = CAST5-CFB
+Key = df010376a6b03279338773a70e012382
+IV = 67455decec549365
+Plaintext = 9b9c3dea553ec235db0011b27191544171845b7bdda0dc04a089583959bba5ab7048f8ca87eab073a8b824fdd4e82e40
+Ciphertext = c0401a8557096e02ff58f62634eb39b8894735f6e1d735eee0cbd97804987a6d1f123100e2be26089fb40708b48854ce
+
+Cipher = CAST5-CFB
+Key = ff01aa4f7106c6bd24399076f901a530
+IV = 089b4f6054eeeef7
+Plaintext = ae9cb9dfa305af83e95a3b2099f70907edcd49fbc6efc5ebe744184c76b4f56bf35774f3fe215e1c8ee42172a2dd3e6f9ccd3d9bb044325e61a6bb97e48e9986
+Ciphertext = 18c2127028579828ce13a8636ba7d666ace80c0b392bf3be4f5f97ff94d081e4174afd85de006c0affbb244149f9d2efd5f50ae7791f4ca061979f0e80a1790f
+
+Cipher = CAST5-CFB
+Key = d33d4062ab32298eafcca86b5088d5fd
+IV = fcfffce8b020240f
+Plaintext = 1fe1318adb99e6d4fced292902fe8c831ba488a43f85964d6ff54b322663b380bc99fed15568278cfe1d0af795c71355bf65e876855763655eec3abf3d4b27a0341d607f4bfbd82c8900fd436f7c4186
+Ciphertext = ea2913d6d9f3906403ae86fa34fb185e333cf4991ab5f27d58abbc4d4bbf14165fbbf7da164401b4ff856807141fbc4d5ad550beb5d8c708eda610a5af801e27d68945ded441f2ff85206e5c3e52e786
+
+Cipher = CAST5-CFB
+Key = 47e13544a7bbf74dd68ab5ce66e5bdaa
+IV = 69480b4dd38cf3b4
+Plaintext = 3e2e583a3a0389ca324f2aaa52b7823904ab288dae562995cf1d70c796d785fd361261434eea480ceb3d369d969652c7ff194931c0a9bd978f5ae4094d6ef32d986a092c580ccbf865e5095a7b80559be13f842f9bea9e42a3a01ef8a24a6526
+Ciphertext = c4fd34b698c5908a37eab83859317b9961e7e741bfef9060595fcee55c73f6c93bdbc5b80c73798c15efb29207e958e975cb77b4cbe5e5b329d50e86fb43dd3a234aa23fb5c9d38dae78c5de99b5e3f8a00d0bb00208ceaf2ede8f8b99f19223
+
+Cipher = CAST5-CFB
+Key = ae86823695b48e8c612ae5a01b597f97
+IV = b26eef7b1d14894c
+Plaintext = 569a910bc6aa97b8939ca703fc10ce0d171625bc735a1fea7148650541109d955b1b686c6cc404b2d3d92ad9faaff217dc7b31b038b770959aeccd1ca55d650364fde51df8d4f0aeb05fa364f5028f709c179ca6df0bdfc1cb850f238d755ac44a733fce558402be0c70bc0871b8e62f
+Ciphertext = 63c415bd42ee6097485e023ff9c4a29e04fb4ab3254bbe1dba5b85c844184d64550dd2ed4f3dc30aa75e987363343b4db154bb0a5a250fc7049ccd8a507083f5ebd76e34f87f8b23a4540ef1e77c094ab1e0afeacfe04116aa33e2df1e505d0d788065288d57570977feb304ab432bbf
+
+Cipher = CAST5-CFB
+Key = b85df29c9244229835d73441dc37555e
+IV = c1375430efedb2d3
+Plaintext = c232a0bbf967ef28b74e7b809c62bc8c1cf2d52a273a84162900da834448fd567870471498f29770619dec504922e379eaba0d3a712602583d00279d8fc6a6d568cb94a330039a189ed5802abb7a2898c13ef89c00d73fca9a2f2ffc2107ab498212c56835c0fc26f835a69c00bb3eaa695ac20e8bdb0f5b5b6684d02bee8fb2
+Ciphertext = 12c322b65b8296f7f88030ddbe64f2fbcb39beea0165f7633e1cc5e1cbe939bd52b0ddae37603a14bb85faf130ccf34492ed3e41d0092878d96eb09c3a5c6e09e0ba38a60ae0fdd855e1b236e69bf2e6ec6e80e4bd620826419788409524debead5430142da648144ab11746f6a4b40f357e570d8f645767bcf10fd1e1cc3286
+
+Cipher = CAST5-CFB
+Key = e96771f5f20a89ee871261d2d18e1e46
+IV = 8c664a37d245d26c
+Plaintext = 8aaafd56c5d5d54fbe16f115c3216bd1f4376666931a2ef1ffc5468ad12150c39250dca2d63c6ea166bb0ef4aaa3d5849c1f9c621c55826a1ca362f03bcba4dcbd654b300d16519710130e5360bd949aaded6a648f96dd8937a77287d4a4ac2941729475b635b9797476b4dca4171787ff15882d3b4872ed0999a7546dbb61698e8348f70e4a14981a78156150484532
+Ciphertext = c4b350d70801419909077a2218b855d2e4cd3ad47063618009d216fb5bed38f2c161ab1d02fa62fa87371e3975b4e4786617636351e56c294d1a56c43644f54a3566173e18a5ba48964cfb314817219efa9d22b61364b7f1d2c4f38e0a6ad04bc1aee05f5f6061c3f93697125ad29c9a9b39b3640a61f3873f1327fe104fc3d2009052fb9cb356853a6f1e81feebc88f
+
+Cipher = CAST5-CFB
+Key = aef49da33f538ee66e178d4b6121055d
+IV = 842566e68b61ff7b
+Plaintext = 415991f65e1a95040cef9960556f61e617827c30c74bf353cdd86173dbe4cc983a2ee6bc8ca6cfb71121e7b0d0178f2e13445c710dcc176b781201971171f7489f18faf110f39accd1cf08c85a958d7698b116f1c0d75812ac9b0b39aee7f7159ccad8fdae9b99f2d695eacf12c6469d5b51a34de26eac73613dcb2f77122cb1f8dd5162786a12052dc7b6dea6acc4989dcc7eafd9374f6c29697c74749ef16d
+Ciphertext = cda6dcfc1e0103192673cf18f67939eabe1011b94764ddc809f7d4fac4521ed72ee66629220ef29aec006c82e31432030480589f9fe35600939609a0c6f9252ec8ad7f96540236d3dcb4a53433b6759b218da8a37cde43aadcbc517c12811e27db1870d78c874e5f81492b47245cc48c6761998f1fb8cbc6848ff40f0d27adf519bb3645b4d3ca6e35a1979aa5685976375298822dbbb072856312eb30232b97
+
+Cipher = CAST5-OFB
+Key = d7d57bd847154af9722a8df096e61a42
+IV = fdde201c91e401d9
+Plaintext = 81883f22165282ba6a442a8dd2a768d4
+Ciphertext = afd1a6abb87a4a12ccfb63b91868b734
+
+Cipher = CAST5-OFB
+Key = c9f4ce21b4c7daaa4f93e292dc605bc5
+IV = 5e5a8cf2808c720e
+Plaintext = 8e19c5cacd015a662e7f40cdecadbf79a68081c06d9544b41c2dd248e77633b4
+Ciphertext = 834fc0990736575be34b56f7af26a1cc4d801cfd36eb0d0830c5264a7050db77
+
+Cipher = CAST5-OFB
+Key = 7a70cc6b261eeccb05c57117d5763197
+IV = bb7b9667fbd76d5e
+Plaintext = 823cbaae3760c85512a3c83fd60bb54b7cfc739b295b63e05ef435d86e19fd15368c89ff08a0f21ce89a728ffb5d75df
+Ciphertext = 3552cb60d8b3a9d8a6458d20e70250ef67ff90a1767cd61597a18a28dfc354d810f30b8949a8a13a111393ba08bc9e6f
+
+Cipher = CAST5-OFB
+Key = 85dbd5a6e73681a51a4a7d4e93ca7d0c
+IV = 89d897c5aa9e0a5d
+Plaintext = e3dbfc6ae1a879870fd22644c8135fe063355dfc0a8dad45c9c6e052e6e085cf717754dc1b49acb04cf340826ffb0da991138f022a9c34923a6a116c98c7d3d5
+Ciphertext = 20310bbe52bdde7725da64a30e428654a2ab9c2506ea89499b04782038a29c3712915328380e785a660e378dba714a3598ab4a6612cd8350d608a8cf598bea7a
+
+Cipher = CAST5-OFB
+Key = 18b9887a34438fb2e759027e54e334b6
+IV = a5be8621e58dae32
+Plaintext = 8cd659df925950b516f737fc92d2fafa008c008c9dfe0e75ed2d68f6ff79399ff2183464b8c37cf31aafc145fcbfac73e3f87eccb435f424bf1c6d6efb504e8e93e8a668a2210e3d3b4fd437ad1a5842
+Ciphertext = 0cefd22109f262103018037c3821c3bb1d43b5ff45dba0de243a915bdd2e7e9a4b847dcfb23baf1b7c42cc62bf33ffb0e9e8edf31b2ad9545074b5c6c57721f1b3b6d85f343aeddc72591de1f7d4fc7c
+
+Cipher = CAST5-OFB
+Key = da52c0e4609e82ee926174a9eaf90b08
+IV = f2d0c5e86b4ddb40
+Plaintext = 91d6c95a614cf85de16eeabe5976c2a2a9d307042f79a7aaeb7c3c57e1dd8d43bfa458c8c02e4f5ed0c960c9f17e3991dd2e0cb3ede18f96395a484001ef07ca4c97b411ce454aaf0f74242aca03786a93442171bd50a1467b9d663245d24c2f
+Ciphertext = 2e7514b53c534a7d443757a1f071cd9b6e3b79764134c202717bef1f633807b42a3e34b1c6e8b233d2436ec61fa642cc48ef653de35ae84298c380652f2633e5180d35a28f0e8876693a0e92e47a4076ddd9f56d3145564c880dd98adb77e6c2
+
+Cipher = CAST5-OFB
+Key = 56d6f7e2a870b92d55ff8d6e9c554d2a
+IV = b512f0e11e27fd1a
+Plaintext = e62cdeac43667749701314c546f778a4c758e4f55760e7d729c3783cf7a242edf6ae3fcf0990886434896c945455bfae0e5674aa06ee6fb1512d94df2cac2447eeb849373bb3efbe7bb8d66c8a7ee559b17fc268d6599fcdef7457cdbde5b9c5b692236e4397545f2be97bd44f3993ad
+Ciphertext = 71497485f2deb55dfb1f6f77230e98c34faa185a9de4fbd5a2d065c50de8978f9aacec1e4e55c69b72ec581a7acdb9795233d7c40506d9599346a71f2ba14c2f6b7e678efa3cc4e0a30453be14794fd121db985a5b2639a2719e2b771195ad742e60ae9d17ab8c6466676e77f61032b3
+
+Cipher = CAST5-OFB
+Key = 09f216ff78dfe419dfcef1a855473414
+IV = 722174c892d26529
+Plaintext = 11f435e7e3656fcfa8e0df230311ca21054e84e13c8590e7ec7309f59c174022d467a7302641ee1b6ba46bee4f20bfda108bb78982f670b057dfbfe49da9cfae88490ce17241402b20d2fceb476d3a424e6c406d56ffc85278695d584d6c087cb4012ca2cf4daf284fd15ac1f2e183814957e934bf88dff4d777adfbb54933b5
+Ciphertext = 5e37c2fac52455a124fdbb84a7627e3480f672907ee82b2830c2d26f12da8a5edfcc6ef0305de040c2a998b968b2e1e66a586887d1ba77076b661a09b01108c0f6bfcae40ae5441e16cc2b2b32f391e2e88f245325003226802093d33dd676d4591e60a17a958939ef898b20482a99cf79187f6f56f9d1e53f77a6c895730a89
+
+Cipher = CAST5-OFB
+Key = cde9b69eea2b6a5588457e35e0a08803
+IV = 52323b54d69a62fe
+Plaintext = 967798995af6f435b3a6f92bff77a11fa44d1426ae0f6e7dbafac27b123c5fc419be52c0ea412c4b3cac05ae89a4c0ce6f5e91a456b1bded5370a1234cf6f6ab5d0253507bc6f3f0573ab97585b67107dec059812323e021e341ad839ea9e3d02aeca43356add48ccef81f693ed53d32ba1c74a35e8a5f7f3115ef834f7daf9948244c4fc31f5487678d3e70fb27abb5
+Ciphertext = 5cc3f00892f8ac87d5794965f43540ac36965e8122c2cbe8bbc68621739ddb0d28c9086a58c157e7bbdab4bf3e70988a9d2913445776771557bc3e6c6f7f803bfef5085441763b24e266a995b7db60239990202c946aa89750adbf35ebd089b6897a3ca6efa0b4f505dac03c5c2e93cddc3fd7b8ceb419a72d2512330e2cbc99d7b3f3e4eee8b315d3e761c93a08c67a
+
+Cipher = CAST5-OFB
+Key = 939aac71e337709855715a57e3a4648f
+IV = 493509b56a92f140
+Plaintext = 9c22efddc7de496a916d15d710de374d57478126ed64c9ad7e823e24d19bfc0cfac3dda0d1c292a3a203f35b26ad94deb20f998caf41cbdd4a08eb5d6cfb46f4ede4896b0569d72c03ec194941af95c0573cc3fe8f045ba19946b382803248f3dd4f9a454b1a3e8e1af02ea8482d637dac96a68275f4a382d3023f9df4892b9032cab9378b1cef5051d6db81226f259d1be4eb23495ac807600536b5b0481754
+Ciphertext = e04d62785f1d6a05df1ad002c5c81f1e511d4317d674278b0fd35ba16fc4de739d0fc6429df9de7b12fc4f2f9903efe47b5974f7b727d58f919bd198249eac42fdd0d09d741ad6a37b34203c4a7b2f7b22df0edcc263ca3d245387a6fca88937d762820e5c6a820fa26f7dcb6b1346deb7bd60cd61db8a272667bbc03fe2e88d9d69492eab0c6bdd5184bbe82121232e9340fd1d7a5a4b8b304a88137842954c
+
+Cipher = CAST5-OFB
+Key = 8368189d41eaa20d06a3a2d2a91e43f7
+IV = cf04ac0e4733952b
+Plaintext = 696ca57339840fb3c150e0c111d9e13e
+Ciphertext = 3f530c7c373723d7d06695e6782f14e0
+
+Cipher = CAST5-OFB
+Key = 5124c6fdb0856ded76afb6febdaa981e
+IV = 937ebdeec379685a
+Plaintext = 5a5928dd09e78a21256eadb062630a3f0b47ca2376ccae314948143fff2512d4
+Ciphertext = 8ce4e3661b442f508f7016fdbb69f7dcf4609cf6be2a9854533aa450e0638dc9
+
+Cipher = CAST5-OFB
+Key = 6a8f6487e76058bc5a126276e48fdd77
+IV = 6e75d8b8ac097614
+Plaintext = 424ddc343067612fdb426920f40ab4d82e3d4f9485b07fef91617556d3093874840e8110ff375b7a68f98c471ca10acc
+Ciphertext = 7994f1beec7126aa62694e2b6e0874ba8d2da96f5bfc52059d27af0f93ee47798a894a2d6cb793667ca4b308c46b4dd7
+
+Cipher = CAST5-OFB
+Key = 01963d44aea026b2205238454d5bb73f
+IV = 9442a6e0f3a53f10
+Plaintext = c54cfacd953736a2d8db0b8b63b555253a0ca6f6e05f2e918d18be95669fa85609f827d6da014add2964626670c202b195248fc986372c92adbb10c0e7c36e04
+Ciphertext = 8f3f08ab74d80edad7b7008e122050ec8b0af8d0b0b4d107a9d74d701bc367296ea0feefbb7106c7d752757be37f4e19c2178c12ea6d68dfdd8e96a301937223
+
+Cipher = CAST5-OFB
+Key = 4ea87b0b346054c097edc5601b782870
+IV = 9a3e23333b2b2de7
+Plaintext = 0c7734310c5ca82b520bf1e0a1614c7ddd0c002711ef0b239de8fa256e15b32056b992747ff3a3a310d52e9df36275d9192dad61caa16715744552c865c5ae9477a70a2c3a02a01ba176b927445094d2
+Ciphertext = 182462c882bb5a0251542567a92b58e28dc0895891da88befaa0c2d3aae0870ed76b62ba146e4a97a28dc34f83f83bbc29000298028ac646399fdb35c5428b86759c181a8f663d099e33aca6918c3d2c
+
+Cipher = CAST5-OFB
+Key = 1956f40b2334a6546b3071f2d17f4a59
+IV = 765cfb560c46777a
+Plaintext = 045ad66c515d407ab73ea0c6f6ae869872342fc72956a659945454005e37c76ed07df996ffe1322840cf23843b34346a1e730ab721ddceaf362ed256054c105ed581a80c04ef22ae1b5eb8742c6e3c9c0e0e29fad211b4f40adc1520f7c6821e
+Ciphertext = d441ffecd27fdb3172cb38e462e2b6420cb85db892a6073fe1741bc119815079134582238bf47bff2cf2287f7e9fe6617041177da1675e74a15e2e6b183b6148bbf88bb7aecc0161d497f838a85071425a945fdaf0ac8fc3a1d9a405915dd115
+
+Cipher = CAST5-OFB
+Key = 4e47e1b5c1b489295d3a2bf049f4be2d
+IV = 83fdf064d213df41
+Plaintext = 94a7bed3b5a158e85f9e4778a7de105ff4f3b2a61c2fead82cbe949d7a4ee961a6c62949ba2c69d513d836a455b612c2fbb6ca243a0a18a853cadb6b73b600192de1d51ddf80030718b079fbb581073a06b66ba4ad524d3d09efaa59e6919bca15b2b92bd9f8c17d6e463f4ea5fd5f5e
+Ciphertext = faa5133fcad1830f7ea3ab6c6266e0ec7ef25643dd5680a433952ed87a433bbab85392f37edbdab44878b337121bf8b37e8b4cd1980ae59bcd8b34191ffffc5f08850f910f3c2c26a4d32fc460d845ed09995cf172b6338728b3aa17b041122e52c4cd9bc036ff5e7a0c3fb1ca82cca5
+
+Cipher = CAST5-OFB
+Key = 613485e5bb84b91cdd0ca02f8d83e0bb
+IV = ad8a7564f6ce8abb
+Plaintext = ed5068003163c424ae9a8e51e3d77684c69073a824dc4721568f7528657c3dd28d66219f398ed57105aa35cfef3ac078eab30ae0f3ed752b0e320b099ea42b156f818904c4b6c534cabde53dfa62e7b74518a8bca3f36ee85b130e8520d38c006e6adef34bbc8df56b757b500d703e5777aa545c4170404754f03dbf22c9f0d7
+Ciphertext = a03127978305f8e500061bf108157a5e2e4db5e405f130efab2ef5c9d190d15e2bc87c235b6c123de066b447ed506d03d433c12642e8b86ebcfd9077a1e76adf1f79614a28fe92f49c482b6bc3119ab364426236a4aee7920194d0a77ce7d0061c5d254b11f72c6fed02c07a187f945f18818ce31d82fe867153a725525dc11b
+
+Cipher = CAST5-OFB
+Key = 8198b36e880cf50dbf6724feaaac8688
+IV = fbaa2882a2a4acdb
+Plaintext = b2516a356e437513f0df83938afefbe9f9ef1ec879797997f31da96a1ea7a15d395ecdb94b7fda14cdc0b75c171784fa8832d574b64f9450c6be25dc83b93d3bbf0145a661bf4db775282b98649b64613aeedb8bb770f67cc3421ac6761e5d763c21ac2d1e729e4597ad7fca9fdc70878b26634df78cd0f36fb3b138a1357915abba4ff5f8dfaef268307022f2e23528
+Ciphertext = 685e4aa88c350e10125a108a6cdbb38baf3c0fc5c5fdc8b36f0f788ed80ce3dd4e21dd3c0c56f7f2ba399270c80e9f106c7cef715d78c1bdcb3841363afc1c27a65f68bfa2e58b9bf8ccced2e99349fb208116ae2ec176351fdeca19060edec12348590496abb943160075a8408a9d4d51e25e147d1e4045cd76e77ee192bbe411241a3013070ee071c08450ed61bd0f
+
+Cipher = CAST5-OFB
+Key = e30b4c874c4c4f6e0cf1f8ef58e5d375
+IV = 7e26f07f8024343c
+Plaintext = 8ceca4dc346cfd6b15774e082db1a89497b7d85d6b5b7102e77417f7a243fafe17118b7a3bb49d1657cf61b866da395a5b3f349183a53dfa11fc0ac053bddff49dd472ee55f5e43a2f8bc785e2bc420300694919ff7bb43feb75a9cac44ece96f679e618db5d7433af12dcc7e0963ff10b45d835f9a8f42627e7f3fd5038932685965ad0e183f5955e671fc2b878dd51051eedaf85310d1e4e8f75f2decf36c7
+Ciphertext = e1d258d7b885417ba27c3d00ee9fc9247ee7aec53b1647f1d5250db8f358b7f0da34d3ba595c0f9480815ad7dc5a46aaee41f1478ee302f5a068ca7bf2a123e5a6359f1d85a07ce1415b17f1fa03d1b233f4922ae981120ad919b70822cf68b3597ea080d7688eaab85c17b31dfa2fed465a3f272ad9d97362c3ff4c06bad8db4b548ef263c810094d927fc85ef2f90fb6258245024ad9acc2175aeb73015381
+
+Title = CAST5 ECB Test vectors (from RFC 2144)
+Cipher = CAST5-ECB
+Key = 0123456712345678234567893456789A
+Plaintext = 0123456789ABCDEF
+Ciphertext = 238B4FE5847E44B2
+
+Cipher = CAST5-ECB
+Key = 01234567123456782345
+Plaintext = 0123456789ABCDEF
+Ciphertext = EB6A711A2C02271B
+
+Cipher = CAST5-ECB
+Key = 0123456712
+Plaintext = 0123456789ABCDEF
+Ciphertext = 7AC816D16E9B302E