summaryrefslogtreecommitdiff
path: root/GnuPG/passphrases.cpp
diff options
context:
space:
mode:
authormataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-11-22 18:30:08 +0000
committermataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-11-22 18:30:08 +0000
commit4101ee8ff9bc818f40dc0173b1434761f187597f (patch)
tree15ace4a23c2d13b1c4b506a54887b1ec196ee007 /GnuPG/passphrases.cpp
parentda1c34bde32e040a0a431ffb809c3b1e425dc558 (diff)
added GnuPG
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@197 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'GnuPG/passphrases.cpp')
-rw-r--r--GnuPG/passphrases.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/GnuPG/passphrases.cpp b/GnuPG/passphrases.cpp
new file mode 100644
index 0000000..1b93e95
--- /dev/null
+++ b/GnuPG/passphrases.cpp
@@ -0,0 +1,72 @@
+#include "gnupgplugin.h"
+
+// passphrase typ
+struct passphrase_s
+{
+ char keyuserid[keyuseridsize];
+ char passphrase[passphrasesize];
+};
+
+// globale variablen
+struct passphrase_s *passphrases;
+int passphrasecount;
+
+void initPassphrases(void)
+{
+ passphrasecount=0;
+ passphrases=NULL;
+}
+
+void releasePassphrases(void)
+{
+ for (int i=0; i<passphrasecount; i++)
+ ZeroMemory(passphrases[i].passphrase,sizeof(passphrases[i].passphrase));
+
+ mir_free(passphrases);
+}
+
+void addPassphrase(const char *akeyuserid, const char *apassphrase)
+{
+ if (!akeyuserid || !apassphrase)
+ return;
+
+ if (getPassphrase(akeyuserid))
+ return;
+
+ passphrasecount++;
+
+ passphrase_s *ps=(passphrase_s*)mir_alloc(sizeof(passphrase_s)*passphrasecount);
+ if (!ps)
+ {
+ --passphrasecount;
+ return;
+ }
+
+ if (passphrasecount>1)
+ {
+ int prevsiz=sizeof(passphrase_s)*(passphrasecount-1);
+ memcpy(ps,passphrases,prevsiz);
+ ZeroMemory(passphrases,prevsiz);
+ mir_free(passphrases);
+ }
+
+ passphrases=ps;
+
+ strncpy(passphrases[passphrasecount-1].keyuserid,akeyuserid,keyuseridsize);
+ strncpy(passphrases[passphrasecount-1].passphrase,apassphrase,passphrasesize);
+ passphrases[passphrasecount-1].keyuserid[keyuseridsize-1]='\0';
+ passphrases[passphrasecount-1].passphrase[passphrasesize-1]='\0';
+}
+
+char *getPassphrase(const char *akeyuserid)
+{
+ char *result=NULL;
+
+ for (int i=0; i<passphrasecount; i++)
+ {
+ if (strcmp(passphrases[i].keyuserid,akeyuserid)==0)
+ result=passphrases[i].passphrase;
+ }
+
+ return result;
+}