Author: david
Date: Tue Jul 19 17:17:14 2011
New Revision: 9340

Log:
Switch to SHA-256 as default checksum algorithm for digital objects

Modified:
   trunk/lib/QubitAsset.class.php
   trunk/lib/model/QubitDigitalObject.php

Modified: trunk/lib/QubitAsset.class.php
==============================================================================
--- trunk/lib/QubitAsset.class.php      Tue Jul 19 16:44:02 2011        (r9339)
+++ trunk/lib/QubitAsset.class.php      Tue Jul 19 17:17:14 2011        (r9340)
@@ -37,7 +37,7 @@
   {
     $this->name = $assetName;
     $this->contents = $assetContents;
-    $this->generateChecksum('md5');
+    $this->generateChecksum('sha256');
   }
 
   public function setName($value)
@@ -100,20 +100,12 @@
 
   public function generateChecksum($algorithm)
   {
-    switch ($algorithm)
+    if (!in_array($algorithm, hash_algos()))
     {
-      case 'sha1':
-        $this->checksum = sha1($this->contents);
-        break;
-
-      case 'md5':
-        $this->checksum = md5($this->contents);
-        break;
-
-      default:
-        throw new Exception('Invalid checksum algorithm');
+      throw new Exception('Invalid checksum algorithm');
     }
 
+    $this->checksum = hash($algorithm, $this->contents);
     $this->checksumAlgorithm = $algorithm;
 
     return $this->checksum;

Modified: trunk/lib/model/QubitDigitalObject.php
==============================================================================
--- trunk/lib/model/QubitDigitalObject.php      Tue Jul 19 16:44:02 2011        
(r9339)
+++ trunk/lib/model/QubitDigitalObject.php      Tue Jul 19 17:17:14 2011        
(r9340)
@@ -1793,16 +1793,18 @@
    */
   public function generateChecksumFromFile($filename)
   {
-    switch($this->checksumType)
+    if (!isset($this->checksumType))
     {
-      case 'sha1':
-        $this->checksum = sha1_file($filename);
-        break;
-      default:
-        $this->checksum = md5_file($filename);
-        $this->checksumType = 'md5';
+      $this->checksumType = 'sha256';
     }
 
+    if (!in_array($this->checksumType, hash_algos()))
+    {
+      throw new Exception('Invalid checksum this->checksumType 
"'.$this->checksumType.'"');
+    }
+
+    $this->checksum = hash_file($this->checksumType, $filename);
+
     return $this;
   }
 

-- 
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/qubit-commits?hl=en.

Reply via email to