summaryrefslogtreecommitdiff
path: root/plugins/CryptoPP/src/cpp_misc.cpp
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2012-07-20 16:21:49 +0000
committerKirill Volinsky <mataes2007@gmail.com>2012-07-20 16:21:49 +0000
commitf424a18112032cf61d2871a6b91a5af607c171ae (patch)
tree88fedc4e28941ceecda7026f0b06eba6271f91d5 /plugins/CryptoPP/src/cpp_misc.cpp
parentbfe1bd0fc087be44c70904aee0fe4276643d206d (diff)
CryptoPP:
changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1083 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/CryptoPP/src/cpp_misc.cpp')
-rw-r--r--plugins/CryptoPP/src/cpp_misc.cpp97
1 files changed, 97 insertions, 0 deletions
diff --git a/plugins/CryptoPP/src/cpp_misc.cpp b/plugins/CryptoPP/src/cpp_misc.cpp
new file mode 100644
index 0000000000..5e5720df18
--- /dev/null
+++ b/plugins/CryptoPP/src/cpp_misc.cpp
@@ -0,0 +1,97 @@
+#include "commonheaders.h"
+
+
+int __cdecl cpp_get_features(HANDLE context) {
+ pCNTX ptr = get_context_on_id(context); if (!ptr) return 0;
+ return ptr->features;
+}
+
+
+int __cdecl cpp_get_error(HANDLE context) {
+ pCNTX ptr = get_context_on_id(context); if (!ptr) return 0;
+ return ptr->error;
+}
+
+
+int __cdecl cpp_get_version(void) {
+ return __VERSION_DWORD;
+}
+
+
+BOOL cpp_get_simdata(HANDLE context, pCNTX *ptr, pSIMDATA *p) {
+ *ptr = get_context_on_id(context);
+// if (!*ptr || !(*ptr)->pdata || (*ptr)->mode&(MODE_PGP|MODE_GPG|MODE_RSA)) return FALSE;
+ if (!*ptr || (*ptr)->mode&(MODE_PGP|MODE_GPG|MODE_RSA)) return FALSE;
+ *p = (pSIMDATA) cpp_alloc_pdata(*ptr);
+ return TRUE;
+}
+
+
+int __cdecl cpp_size_keyx(void) {
+ return(Tiger::DIGESTSIZE+2);
+}
+
+
+void __cdecl cpp_get_keyx(HANDLE context, BYTE *key) {
+ pCNTX ptr; pSIMDATA p; if (!cpp_get_simdata(context,&ptr,&p)) return;
+ memcpy(key,p->KeyX,Tiger::DIGESTSIZE);
+ memcpy(key+Tiger::DIGESTSIZE,&ptr->features,2);
+}
+
+
+void __cdecl cpp_set_keyx(HANDLE context, BYTE *key) {
+ pCNTX ptr; pSIMDATA p; if (!cpp_get_simdata(context,&ptr,&p)) return;
+ SAFE_FREE(p->PubA);
+ SAFE_FREE(p->KeyA);
+ SAFE_FREE(p->KeyB);
+ SAFE_FREE(p->KeyX);
+ p->KeyX = (PBYTE) malloc(Tiger::DIGESTSIZE+2);
+ memcpy(p->KeyX,key,Tiger::DIGESTSIZE);
+ memcpy(&ptr->features,key+Tiger::DIGESTSIZE,2);
+}
+
+
+void __cdecl cpp_get_keyp(HANDLE context, BYTE *key) {
+ pCNTX ptr; pSIMDATA p; if (!cpp_get_simdata(context,&ptr,&p)) return;
+ memcpy(key,p->KeyP,Tiger::DIGESTSIZE);
+}
+
+
+int __cdecl cpp_size_keyp(void) {
+ return(Tiger::DIGESTSIZE);
+}
+
+
+void __cdecl cpp_set_keyp(HANDLE context, BYTE *key) {
+ pCNTX ptr; pSIMDATA p; if (!cpp_get_simdata(context,&ptr,&p)) return;
+ SAFE_FREE(p->KeyP);
+ p->KeyP = (PBYTE) malloc(Tiger::DIGESTSIZE);
+ memcpy(p->KeyP,key,Tiger::DIGESTSIZE);
+}
+
+
+int __cdecl cpp_keya(HANDLE context) {
+ pCNTX ptr; pSIMDATA p; if (!cpp_get_simdata(context,&ptr,&p)) return 0;
+ return p->KeyA!=NULL;
+}
+
+
+int __cdecl cpp_keyb(HANDLE context) {
+ pCNTX ptr; pSIMDATA p; if (!cpp_get_simdata(context,&ptr,&p)) return 0;
+ return p->KeyB!=NULL;
+}
+
+
+int __cdecl cpp_keyx(HANDLE context) {
+ pCNTX ptr; pSIMDATA p; if (!cpp_get_simdata(context,&ptr,&p)) return 0;
+ return p->KeyX!=NULL;
+}
+
+
+int __cdecl cpp_keyp(HANDLE context) {
+ pCNTX ptr; pSIMDATA p; if (!cpp_get_simdata(context,&ptr,&p)) return 0;
+ return p->KeyP!=NULL;
+}
+
+
+// EOF