[OpenPGP:SDK svn] r492 - openpgpsdk/trunk/tests

Subversion ben at links.org
Fri Aug 24 13:07:08 BST 2007


Author: rachel
Date: 2007-08-24 13:07:08 +0100 (Fri, 24 Aug 2007)
New Revision: 492

Modified:
   openpgpsdk/trunk/tests/test_rsa_decrypt.c
Log:
Added tests for other symmetric algorithms in RSA decrypt test


Modified: openpgpsdk/trunk/tests/test_rsa_decrypt.c
===================================================================
--- openpgpsdk/trunk/tests/test_rsa_decrypt.c	2007-08-24 10:43:35 UTC (rev 491)
+++ openpgpsdk/trunk/tests/test_rsa_decrypt.c	2007-08-24 12:07:08 UTC (rev 492)
@@ -17,8 +17,8 @@
 #include "../src/advanced/parse_local.h"
 #include "../src/advanced/keyring_local.h"
 
-//static ops_keyring_t keyring;
 static char *filename_rsa_noarmour_nopassphrase="dec_rsa_noarmour_nopassphrase.txt";
+
 static char *filename_rsa_armour_nopassphrase="dec_rsa_armour_nopassphrase.txt";
 static char *filename_rsa_noarmour_passphrase="dec_rsa_noarmour_passphrase.txt";
 static char *filename_rsa_armour_passphrase="dec_rsa_armour_passphrase.txt";
@@ -26,26 +26,6 @@
 static char *passphrase="hello";
 static char *current_passphrase=NULL;
 
-//static char* text;
-
-/*
-static int create_testfile(const char *name)
-    {
-    char filename[MAXBUF+1];
-    char buffer[MAXBUF+1];
-
-    int fd=0;
-    snprintf(filename,MAXBUF,"%s/%s",dir,name);
-    if ((fd=open(filename,O_WRONLY| O_CREAT | O_EXCL, 0600))<0)
-	return 0;
-
-    create_testtext(name,&buffer[0],MAXBUF);
-    write(fd,buffer,strlen(buffer));
-    close(fd);
-    return 1;
-    }
-*/
-
 static ops_parse_cb_return_t
 callback(const ops_parser_content_t *content_,ops_parse_cb_info_t *cbinfo)
     {
@@ -139,89 +119,69 @@
     create_testfile(filename_rsa_noarmour_passphrase);
     create_testfile(filename_rsa_armour_passphrase);
 
-    // Restrict list of algorithms used
-   
-    //    snprintf(cmd,MAXBUF,"gpg --homedir=%s --default-preference-list \"CAST5\"", dir);
-    //    if (system(cmd))
-    //        return -1;
+    /*
+     * Now encrypt the test files with GPG
+     * Note:: To make it do SE_IP packets, do NOT use --openpgp and DO use --force-mdc
+     */
 
-    // Now encrypt the test files with GPG
-    // Note:: To make it do SE_IP packets, do NOT use --openpgp and DO use --force-mdc
-    snprintf(cmd,MAXBUF,"gpg --homedir=%s --cipher-algo \"CAST5\" --force-mdc --compress-level 0 --quiet --encrypt --recipient Alpha %s/%s", dir, dir, filename_rsa_noarmour_nopassphrase);
+    // default symmetric algorithm
+    snprintf(cmd,MAXBUF,"gpg --homedir=%s --force-mdc --compress-level 0 --quiet --encrypt --recipient Alpha %s/%s", dir, dir, filename_rsa_noarmour_nopassphrase);
     if (system(cmd))
         {
         return 1;
         }
 
-    snprintf(cmd,MAXBUF,"gpg --openpgp --quiet --encrypt --personal-cipher-preferences='CAST5' --armor --homedir=%s --recipient Alpha %s/%s", dir, dir, filename_rsa_armour_nopassphrase);
+#ifndef OPENSSL_NO_IDEA
+    /*
+    // IDEA
+    snprintf(cmd,MAXBUF,"gpg --homedir=%s --cipher-algo \"IDEA\" --output=%s/IDEA_%s.gpg  --force-mdc --compress-level 0 --quiet --encrypt --recipient Alpha %s/%s", dir, dir, filename_rsa_noarmour_nopassphrase, dir, filename_rsa_noarmour_nopassphrase);
     if (system(cmd))
         {
         return 1;
         }
-    
-    snprintf(cmd,MAXBUF,"gpg --openpgp --quiet --encrypt --s2k-cipher-algo CAST5 --homedir=%s --recipient Bravo %s/%s", dir, dir, filename_rsa_noarmour_passphrase);
+    */
+#endif
+
+    // TripleDES 
+    snprintf(cmd,MAXBUF,"gpg --homedir=%s --cipher-algo \"3DES\" --output=%s/3DES_%s.gpg  --force-mdc --compress-level 0 --quiet --encrypt --recipient Alpha %s/%s", dir, dir, filename_rsa_noarmour_nopassphrase, dir, filename_rsa_noarmour_nopassphrase);
     if (system(cmd))
         {
         return 1;
         }
 
-    snprintf(cmd,MAXBUF,"gpg --openpgp --quiet --encrypt --s2k-cipher-algo CAST5 --armor --homedir=%s --recipient Bravo %s/%s", dir, dir, filename_rsa_armour_passphrase);
+    // Cast5
+    snprintf(cmd,MAXBUF,"gpg --homedir=%s --cipher-algo \"CAST5\" --output=%s/CAST5_%s.gpg  --force-mdc --compress-level 0 --quiet --encrypt --recipient Alpha %s/%s", dir, dir, filename_rsa_noarmour_nopassphrase, dir, filename_rsa_noarmour_nopassphrase);
     if (system(cmd))
         {
         return 1;
         }
 
-#ifdef XXX
-    int fd=0;
-    char *rsa_nopass="Key-Type: RSA\nKey-Usage: encrypt, sign\nName-Real: Alpha\nName-Comment: RSA, no passphrase\nName-Email: alpha at test.com\nKey-Length: 1024\n";
-    char *rsa_pass="Key-Type: RSA\nKey-Usage: encrypt, sign\nName-Real: Bravo\nName-Comment: RSA, passphrase\nName-Email: bravo at test.com\nPassphrase: hello\nKey-Length: 1024\n";
-    
-    // Create temp directory
-    if (!mktmpdir())
-	return 1;
+    // AES256
+    snprintf(cmd,MAXBUF,"gpg --homedir=%s --cipher-algo \"AES256\" --output=%s/AES256_%s.gpg  --force-mdc --compress-level 0 --quiet --encrypt --recipient Alpha %s/%s", dir, dir, filename_rsa_noarmour_nopassphrase, dir, filename_rsa_noarmour_nopassphrase);
+    if (system(cmd))
+        {
+        return 1;
+        }
 
-    /*
-     * Create a RSA keypair with no passphrase
-     */
 
-    snprintf(keydetails,MAXBUF,"%s/%s",dir,"keydetails.alpha");
+#ifdef TODO
+    snprintf(cmd,MAXBUF,"gpg --openpgp --quiet --encrypt --personal-cipher-preferences='CAST5' --armor --homedir=%s --recipient Alpha %s/%s", dir, dir, filename_rsa_armour_nopassphrase);
+    if (system(cmd))
+        {
+        return 1;
+        }
+    
+    snprintf(cmd,MAXBUF,"gpg --openpgp --quiet --encrypt --s2k-cipher-algo CAST5 --homedir=%s --recipient Bravo %s/%s", dir, dir, filename_rsa_noarmour_passphrase);
+    if (system(cmd))
+        {
+        return 1;
+        }
 
-    if ((fd=open(keydetails,O_WRONLY | O_CREAT | O_EXCL, 0600))<0)
-	{
-	fprintf(stderr,"Can't create key details\n");
-	return 1;
-	}
-
-    write(fd,rsa_nopass,strlen(rsa_nopass));
-    close(fd);
-
-    snprintf(cmd,MAXBUF,"gpg --openpgp --quiet --gen-key --expert --homedir=%s --batch %s",dir,keydetails);
-    system(cmd);
-
-    /*
-     * Create a RSA keypair with passphrase
-     */
-
-    snprintf(keydetails,MAXBUF,"%s/%s",dir,"keydetails.bravo");
-    if ((fd=open(keydetails,O_WRONLY | O_CREAT | O_EXCL, 0600))<0)
-	{
-	fprintf(stderr,"Can't create key details\n");
-	return 1;
-	}
-
-    write(fd,rsa_pass,strlen(rsa_pass));
-    close(fd);
-
-    snprintf(cmd,MAXBUF,"gpg --openpgp --quiet --gen-key --expert --homedir=%s --batch %s",dir,keydetails);
-    system(cmd);
-
-
-    // Initialise OPS 
-    ops_init();
-
-    // read keyring
-    snprintf(secring,MAXBUF,"%s/secring.gpg", dir);
-    ops_keyring_read(&keyring,secring);
+    snprintf(cmd,MAXBUF,"gpg --openpgp --quiet --encrypt --s2k-cipher-algo CAST5 --armor --homedir=%s --recipient Bravo %s/%s", dir, dir, filename_rsa_armour_passphrase);
+    if (system(cmd))
+        {
+        return 1;
+        }
 #endif
 
     // Return success
@@ -231,28 +191,12 @@
 int clean_suite_rsa_decrypt(void)
     {
 	
-#ifdef XXX
-    char cmd[MAXBUF+1];
-    /* Close OPS */
-    
-    ops_keyring_free(&keyring);
-    ops_finish();
-
-    /* Remove test dir and files */
-    snprintf(cmd,MAXBUF,"rm -rf %s", dir);
-    if (system(cmd))
-	{
-	perror("Can't delete test directory ");
-	return 1;
-	}
-#endif
-    
     reset_vars();
 
     return 0;
     }
 
-static void test_rsa_decrypt(const int has_armour, const int has_passphrase, const char *filename)
+static void test_rsa_decrypt(const int has_armour, const int has_passphrase, const char *filename, const char* protocol)
     {
     char encfile[MAXBUF+1];
     char testtext[MAXBUF+1];
@@ -261,7 +205,10 @@
     ops_parse_info_t *pinfo;
     
     // open encrypted file
-    snprintf(encfile,MAXBUF,"%s/%s.%s",dir,filename,suffix);
+    snprintf(encfile,MAXBUF,"%s/%s%s%s.%s",dir,
+             protocol==NULL ? "" : protocol,
+             protocol==NULL ? "" : "_",
+             filename,suffix);
     fd=open(encfile,O_RDONLY);
     if(fd < 0)
         {
@@ -300,28 +247,60 @@
     {
     int armour=0;
     int passphrase=0;
-    test_rsa_decrypt(armour,passphrase,filename_rsa_noarmour_nopassphrase);
+    test_rsa_decrypt(armour,passphrase,filename_rsa_noarmour_nopassphrase,NULL);
     }
 
+#ifndef OPENSSL_NO_IDEA
+void test_rsa_decrypt_noarmour_nopassphrase_idea(void)
+    {
+    int armour=0;
+    int passphrase=0;
+    test_rsa_decrypt(armour,passphrase,filename_rsa_noarmour_nopassphrase,"IDEA");
+    }
+#endif
+
+void test_rsa_decrypt_noarmour_nopassphrase_3des(void)
+    {
+    int armour=0;
+    int passphrase=0;
+    test_rsa_decrypt(armour,passphrase,filename_rsa_noarmour_nopassphrase,"3DES");
+    }
+
+void test_rsa_decrypt_noarmour_nopassphrase_cast5(void)
+    {
+    int armour=0;
+    int passphrase=0;
+    test_rsa_decrypt(armour,passphrase,filename_rsa_noarmour_nopassphrase,"CAST5");
+    }
+
+void test_rsa_decrypt_noarmour_nopassphrase_aes256(void)
+    {
+    int armour=0;
+    int passphrase=0;
+    test_rsa_decrypt(armour,passphrase,filename_rsa_noarmour_nopassphrase,"AES256");
+    }
+
+//
+
 void test_rsa_decrypt_armour_nopassphrase(void)
     {
     int armour=1;
     int passphrase=0;
-    test_rsa_decrypt(armour,passphrase,filename_rsa_armour_nopassphrase);
+    test_rsa_decrypt(armour,passphrase,filename_rsa_armour_nopassphrase,NULL);
     }
 
 void test_rsa_decrypt_noarmour_passphrase(void)
     {
     int armour=0;
     int passphrase=1;
-    test_rsa_decrypt(armour,passphrase,filename_rsa_noarmour_passphrase);
+    test_rsa_decrypt(armour,passphrase,filename_rsa_noarmour_passphrase,NULL);
     }
 
 void test_rsa_decrypt_armour_passphrase(void)
     {
     int armour=1;
     int passphrase=1;
-    test_rsa_decrypt(armour,passphrase,filename_rsa_armour_passphrase);
+    test_rsa_decrypt(armour,passphrase,filename_rsa_armour_passphrase,NULL);
     }
 
 /*
@@ -344,9 +323,25 @@
 
     // add tests to suite
     
-    if (NULL == CU_add_test(suite, "Unarmoured, no passphrase", test_rsa_decrypt_noarmour_nopassphrase))
+    if (NULL == CU_add_test(suite, "Unarmoured, no passphrase (CAST5)", test_rsa_decrypt_noarmour_nopassphrase_cast5))
 	    return NULL;
     
+    if (NULL == CU_add_test(suite, "Unarmoured, no passphrase (Default)", test_rsa_decrypt_noarmour_nopassphrase))
+	    return NULL;
+    
+#ifndef OPENSSL_NO_IDEA
+    /*
+    if (NULL == CU_add_test(suite, "Unarmoured, no passphrase (IDEA)", test_rsa_decrypt_noarmour_nopassphrase_idea))
+	    return NULL;
+    */
+#endif
+    
+    if (NULL == CU_add_test(suite, "Unarmoured, no passphrase (3DES)", test_rsa_decrypt_noarmour_nopassphrase_3des))
+	    return NULL;
+    
+    if (NULL == CU_add_test(suite, "Unarmoured, no passphrase (AES256)", test_rsa_decrypt_noarmour_nopassphrase_aes256))
+	    return NULL;
+    
 #ifdef TODO
     if (NULL == CU_add_test(suite, "Armoured, no passphrase", test_rsa_decrypt_armour_nopassphrase))
 	    return NULL;



More information about the OpenPGPsdk-svn mailing list