*
*/
-#include "silc.h"
+#include "silccrypto.h"
#include "rc5_internal.h"
#include "rc5.h"
/* Sets the key for the cipher. */
-SILC_CIPHER_API_SET_KEY(rc5)
+SILC_CIPHER_API_SET_KEY(rc5_cbc)
{
SilcUInt32 k[8];
return TRUE;
}
-/* Returns the size of the cipher context. */
+/* Sets IV for the cipher. */
-SILC_CIPHER_API_CONTEXT_LEN(rc5)
+SILC_CIPHER_API_SET_IV(rc5_cbc)
{
- return sizeof(RC5Context);
+
+}
+
+/* Initialize */
+
+SILC_CIPHER_API_INIT(rc5_cbc)
+{
+ return silc_calloc(1, sizeof(RC5Context));
+}
+
+/* Initialize */
+
+SILC_CIPHER_API_UNINIT(rc5_cbc)
+{
+ RC5Context *rc5 = context;
+ memset(rc5, 0, sizeof(*rc5));
+ silc_free(rc5);
}
/* Encrypts with the cipher in CBC mode. Source and destination buffers
maybe one and same. */
-SILC_CIPHER_API_ENCRYPT_CBC(rc5)
+SILC_CIPHER_API_ENCRYPT(rc5_cbc)
{
SilcUInt32 tiv[4];
int i;
/* Decrypts with the cipher in CBC mode. Source and destination buffers
maybe one and same. */
-SILC_CIPHER_API_DECRYPT_CBC(rc5)
+SILC_CIPHER_API_DECRYPT(rc5_cbc)
{
SilcUInt32 tmp[4], tmp2[4], tiv[4];
int i;