]> www.vanbest.org Git - sasc-ng.git/commitdiff
extend IDEA crypto API
authorleslie <unknown>
Mon, 21 Dec 2009 13:49:54 +0000 (14:49 +0100)
committerleslie <unknown>
Mon, 21 Dec 2009 13:49:54 +0000 (14:49 +0100)
crypto.c
crypto.h

index a19ce8b2ac4f893be707a89452a718529fe6bc7c..b5d9248a5b41d1797b535a1668b36a4023c82cb5 100644 (file)
--- a/crypto.c
+++ b/crypto.c
@@ -102,6 +102,15 @@ void cIDEA::Decrypt(unsigned char *data, int len, const unsigned char *key, unsi
   idea_cbc_encrypt(data,data,len&~7,&ks,iv,IDEA_DECRYPT);
 }
 
+void cIDEA::Decrypt(const unsigned char *data, int len, unsigned char *decrypt, const unsigned char *key, unsigned char *iv) const
+{
+  unsigned char v[8];
+  if(!iv) { memset(v,0,sizeof(v)); iv=v; }
+  IDEA_KEY_SCHEDULE ks;
+  idea_set_encrypt_key(key,&ks);
+  idea_cbc_encrypt(data,decrypt,len&~7,&ks,iv,IDEA_DECRYPT);
+}
+
 int cIDEA::Encrypt(const unsigned char *data, int len, unsigned char *crypt, const unsigned char *key, unsigned char *iv) const
 {
   unsigned char v[8];
index 8e056afdeec4eaf0fb2ffe298e8d2aeae8993156..1f618a69662f9fe75413cf501b8f4ea2118f21c9 100644 (file)
--- a/crypto.h
+++ b/crypto.h
@@ -113,6 +113,7 @@ class cIDEA {
 public:
   // single shot API
   void Decrypt(unsigned char *data, int len, const unsigned char *key, unsigned char *iv) const;
+  void Decrypt(const unsigned char *data, int len, unsigned char *decrypt, const unsigned char *key, unsigned char *iv) const;
   int Encrypt(const unsigned char *data, int len, unsigned char *crypt, const unsigned char *key, unsigned char *iv) const;
   // multi shot API
   void SetEncKey(const unsigned char *key, IdeaKS *ks) const;