]> spindle.queued.net Git - midori/commitdiff
Store password with g_strdup instead of strcpy
authorChristian Dywan <christian@twotoasts.de>
Sun, 12 Feb 2012 23:16:21 +0000 (00:16 +0100)
committerChristian Dywan <christian@twotoasts.de>
Sun, 12 Feb 2012 23:16:21 +0000 (00:16 +0100)
extensions/formhistory/formhistory-crypt.c
extensions/formhistory/formhistory-crypt.h
extensions/formhistory/formhistory-frontend.h
extensions/formhistory/formhistory.c

index f174f0701f9dd5d3b49d35bcb21b4b7982b8db24..3c968c0c11ff1f62edd37bffbfcca077425b7bcf 100644 (file)
@@ -20,7 +20,7 @@ const char *iv ="12345678";
 
 gchar*
 formhistory_encrypt (const gchar*   input,
-                     unsigned char* key)
+                     const gchar*   key)
 {
     int outlen=0, auxlen=0;
     EVP_CIPHER_CTX ctx;
@@ -34,7 +34,7 @@ formhistory_encrypt (const gchar*   input,
     memset (&buff[0], '\0', BUF_SIZE);
 
     EVP_CIPHER_CTX_init (&ctx);
-    EVP_EncryptInit (&ctx, EVP_bf_cbc (), key, (unsigned char*)iv);
+    EVP_EncryptInit (&ctx, EVP_bf_cbc (), (unsigned char*)key, (unsigned char*)iv);
 
     if (EVP_EncryptUpdate (&ctx, (uc*)&buff, &outlen, (uc*)input, inputSize) != 1)
         return NULL;
@@ -48,7 +48,7 @@ formhistory_encrypt (const gchar*   input,
 
 gchar*
 formhistory_decrypt (const gchar*   b64input,
-                     unsigned char* key)
+                     const gchar*   key)
 {
     int outlen=0, auxlen=0;
     EVP_CIPHER_CTX ctx;
@@ -63,7 +63,7 @@ formhistory_decrypt (const gchar*   b64input,
     memset (&buff, 0, BUF_SIZE);
 
     EVP_CIPHER_CTX_init (& ctx);
-    EVP_DecryptInit (& ctx, EVP_bf_cbc(), key, (uc*)iv);
+    EVP_DecryptInit (& ctx, EVP_bf_cbc(), (unsigned char*)key, (uc*)iv);
 
     if (EVP_DecryptUpdate (& ctx, (uc*)&buff, &outlen, (uc*)input, inputSize) != 1)
         return NULL;
index 123bdbb4763c3db875c035b01fe5acb2c475a376..0aada77c0e084b32c3075a7b1079b554e2060a8f 100644 (file)
@@ -19,9 +19,9 @@ typedef struct
 } FormhistoryPasswordEntry;
 
 gchar*
-formhistory_encrypt (const gchar* input, unsigned char* key);
+formhistory_encrypt (const gchar* input, const gchar* key);
 
 gchar*
-formhistory_decrypt (const gchar* b64input, unsigned char* key);
+formhistory_decrypt (const gchar* b64input, const char* key);
 
 #endif
index 1a86217f4663e5aa141eb951d7b66556836848e9..c483e848a63d0f7c38ad0c0aaef63827960bb1b6 100644 (file)
@@ -39,7 +39,7 @@ typedef struct
     #else
     gchar* jsforms;
     #endif
-    unsigned char master_password [MAXPASSSIZE];
+    gchar* master_password;
     int master_password_canceled;
     int password_manager_enabled;
 } FormHistoryPriv;
index 0281c79e18f201ad9bcee17224af4459a266d12e..4a3e8dc83786c6690d668a65b37612c9252ae4fc 100644 (file)
@@ -79,11 +79,9 @@ formhistory_check_master_password (GtkWidget*       parent,
     const gchar* title;
     static int alive;
     gboolean ret = FALSE;
-    unsigned char* master_password;
 
-    master_password = priv->master_password;
     /* Password is set */
-    if (master_password[0] && master_password[1])
+    if (priv->master_password && *priv->master_password)
         return TRUE;
 
     /* Other prompt is active */
@@ -130,8 +128,8 @@ formhistory_check_master_password (GtkWidget*       parent,
     if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
     {
         /* FIXME: add password verification */
-        memset (&master_password[0], '\0', MAXPASSSIZE);
-        strcpy ((char*)master_password, gtk_entry_get_text (GTK_ENTRY (entry)));
+        katze_assign (priv->master_password,
+            g_strdup (gtk_entry_get_text (GTK_ENTRY (entry))));
         ret = TRUE;
     }
     else
@@ -513,7 +511,7 @@ formhistory_activate_cb (MidoriExtension* extension,
     FormHistoryPriv* priv;
 
     priv = formhistory_private_new ();
-    strcpy ((char*)priv->master_password, "");
+    priv->master_password = NULL;
     priv->master_password_canceled = 0;
     priv->password_manager_enabled = 1;
     formhistory_construct_popup_gui (priv);