FLEX-34425 check if MD5 is actually valid and continue if possible

Project: http://git-wip-us.apache.org/repos/asf/flex-utilities/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-utilities/commit/e1a8f26d
Tree: http://git-wip-us.apache.org/repos/asf/flex-utilities/tree/e1a8f26d
Diff: http://git-wip-us.apache.org/repos/asf/flex-utilities/diff/e1a8f26d

Branch: refs/heads/develop
Commit: e1a8f26dd72067b9ce2afcf1dd369af8defe86e7
Parents: 4ae0925
Author: Justin Mclean <[email protected]>
Authored: Mon Oct 27 12:29:53 2014 +1100
Committer: Justin Mclean <[email protected]>
Committed: Mon Oct 27 12:29:53 2014 +1100

----------------------------------------------------------------------
 installer/src/InstallApacheFlex.mxml            | 24 ++++++++++++--------
 .../flex/packageflexsdk/util/MD5CompareUtil.as  | 10 ++++++++
 2 files changed, 24 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1a8f26d/installer/src/InstallApacheFlex.mxml
----------------------------------------------------------------------
diff --git a/installer/src/InstallApacheFlex.mxml 
b/installer/src/InstallApacheFlex.mxml
index 815384c..0b309c0 100644
--- a/installer/src/InstallApacheFlex.mxml
+++ b/installer/src/InstallApacheFlex.mxml
@@ -1576,17 +1576,21 @@ variables are not required because the locations of 
these pieces are known.
         
         protected function uncompressApacheFlexSDK():void
         {
-            if (!_md5CompareUtil.fileIsVerified) {
-                
updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ERROR);
-                
-                log(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
-                
-                
abortInstallation(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
-                return;
+            if (_md5CompareUtil.validMD5) {
+                               if (!_md5CompareUtil.fileIsVerified) {
+                       
updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ERROR);
+                       
+                       log(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
+                       
+                       
abortInstallation(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
+                       return;
+                               } else {
+                       
updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, 
StepItem.COMPLETE);      
+                       log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
+                               }
             } else {
-                
updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, 
StepItem.COMPLETE);
-                
-                log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
+                               
updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, 
StepItem.COMPLETE);
+                               log("Unable to verify MD5 as MD5 is not valid. 
Trying to continue.");
             }
             
             updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, 
StepItem.ACTIVE);

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e1a8f26d/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as
----------------------------------------------------------------------
diff --git 
a/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as 
b/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as
index c422c9e..2dc601b 100644
--- a/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as
+++ b/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as
@@ -137,6 +137,13 @@ public class MD5CompareUtil extends EventDispatcher
        {
                return _fileIsVerified;
        }
+       
+       private var _validMD5:Boolean;
+
+       public function get validMD5():Boolean
+       {
+               return _validMD5;
+       }
 
        
//--------------------------------------------------------------------------
        //
@@ -204,6 +211,9 @@ public class MD5CompareUtil extends EventDispatcher
                        _remoteMD5Value = _remoteMD5Value.split("\n")[0];
                        _remoteMD5Value = _remoteMD5Value.split("\r")[0];
                        
+                       // Valid MD5 hashes are 32 hexidecimal characters
+                       _validMD5 = (_remoteMD5Value.search(new 
RegExp("[a-fA-F0-9]{32}")) == 0);
+
                        compareSignatures();
                }
                else

Reply via email to