Merge branch 'master' into ofop
[redakcja.git] / apps / filebrowser / media / filebrowser / uploadify / com / adobe / crypto / SHA1.as
diff --git a/apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/SHA1.as b/apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/SHA1.as
deleted file mode 100644 (file)
index 952f3c7..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*\r
-  Copyright (c) 2008, Adobe Systems Incorporated\r
-  All rights reserved.\r
-\r
-  Redistribution and use in source and binary forms, with or without \r
-  modification, are permitted provided that the following conditions are\r
-  met:\r
-\r
-  * Redistributions of source code must retain the above copyright notice, \r
-    this list of conditions and the following disclaimer.\r
-  \r
-  * Redistributions in binary form must reproduce the above copyright\r
-    notice, this list of conditions and the following disclaimer in the \r
-    documentation and/or other materials provided with the distribution.\r
-  \r
-  * Neither the name of Adobe Systems Incorporated nor the names of its \r
-    contributors may be used to endorse or promote products derived from \r
-    this software without specific prior written permission.\r
-\r
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS\r
-  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
-  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
-  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \r
-  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
-  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
-  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\r
-  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
-  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
-  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
-*/\r
-\r
-package com.adobe.crypto\r
-{\r
-       import com.adobe.utils.IntUtil;\r
-       import flash.utils.ByteArray;\r
-       import mx.utils.Base64Encoder;\r
-       \r
-       /**\r
-        *  US Secure Hash Algorithm 1 (SHA1)\r
-        *\r
-        *  Implementation based on algorithm description at \r
-        *  http://www.faqs.org/rfcs/rfc3174.html\r
-        */\r
-       public class SHA1\r
-       {\r
-               public static var digest:ByteArray;\r
-               \r
-               /**\r
-                *  Performs the SHA1 hash algorithm on a string.\r
-                *\r
-                *  @param s            The string to hash\r
-                *  @return                     A string containing the hash value of s\r
-                *  @langversion        ActionScript 3.0\r
-                *  @playerversion      9.0\r
-                *  @tiptext\r
-                */\r
-               public static function hash( s:String ):String\r
-               {\r
-                       var blocks:Array = createBlocksFromString( s );\r
-                       var byteArray:ByteArray = hashBlocks( blocks );\r
-                       \r
-                       return IntUtil.toHex( byteArray.readInt(), true )\r
-                                       + IntUtil.toHex( byteArray.readInt(), true )\r
-                                       + IntUtil.toHex( byteArray.readInt(), true )\r
-                                       + IntUtil.toHex( byteArray.readInt(), true )\r
-                                       + IntUtil.toHex( byteArray.readInt(), true );\r
-               }\r
-               \r
-               /**\r
-                *  Performs the SHA1 hash algorithm on a ByteArray.\r
-                *\r
-                *  @param data         The ByteArray data to hash\r
-                *  @return                     A string containing the hash value of data\r
-                *  @langversion        ActionScript 3.0\r
-                *  @playerversion      9.0\r
-                */\r
-               public static function hashBytes( data:ByteArray ):String\r
-               {\r
-                       var blocks:Array = SHA1.createBlocksFromByteArray( data );\r
-                       var byteArray:ByteArray = hashBlocks(blocks);\r
-                       \r
-                       return IntUtil.toHex( byteArray.readInt(), true )\r
-                                       + IntUtil.toHex( byteArray.readInt(), true )\r
-                                       + IntUtil.toHex( byteArray.readInt(), true )\r
-                                       + IntUtil.toHex( byteArray.readInt(), true )\r
-                                       + IntUtil.toHex( byteArray.readInt(), true );\r
-               }\r
-               \r
-               /**\r
-                *  Performs the SHA1 hash algorithm on a string, then does\r
-                *  Base64 encoding on the result.\r
-                *\r
-                *  @param s            The string to hash\r
-                *  @return                     The base64 encoded hash value of s\r
-                *  @langversion        ActionScript 3.0\r
-                *  @playerversion      9.0\r
-                *  @tiptext\r
-                */\r
-               public static function hashToBase64( s:String ):String\r
-               {\r
-                       var blocks:Array = SHA1.createBlocksFromString( s );\r
-                       var byteArray:ByteArray = hashBlocks(blocks);\r
-\r
-                       // ByteArray.toString() returns the contents as a UTF-8 string,\r
-                       // which we can't use because certain byte sequences might trigger\r
-                       // a UTF-8 conversion.  Instead, we convert the bytes to characters\r
-                       // one by one.\r
-                       var charsInByteArray:String = "";\r
-                       byteArray.position = 0;\r
-                       for (var j:int = 0; j < byteArray.length; j++)\r
-                       {\r
-                               var byte:uint = byteArray.readUnsignedByte();\r
-                               charsInByteArray += String.fromCharCode(byte);\r
-                       }\r
-\r
-                       var encoder:Base64Encoder = new Base64Encoder();\r
-                       encoder.encode(charsInByteArray);\r
-                       return encoder.flush();\r
-               }\r
-               \r
-               private static function hashBlocks( blocks:Array ):ByteArray\r
-               {\r
-                       // initialize the h's\r
-                       var h0:int = 0x67452301;\r
-                       var h1:int = 0xefcdab89;\r
-                       var h2:int = 0x98badcfe;\r
-                       var h3:int = 0x10325476;\r
-                       var h4:int = 0xc3d2e1f0;\r
-                       \r
-                       var len:int = blocks.length;\r
-                       var w:Array = new Array( 80 );\r
-                       \r
-                       // loop over all of the blocks\r
-                       for ( var i:int = 0; i < len; i += 16 ) {\r
-                       \r
-                               // 6.1.c\r
-                               var a:int = h0;\r
-                               var b:int = h1;\r
-                               var c:int = h2;\r
-                               var d:int = h3;\r
-                               var e:int = h4;\r
-                               \r
-                               // 80 steps to process each block\r
-                               // TODO: unroll for faster execution, or 4 loops of\r
-                               // 20 each to avoid the k and f function calls\r
-                               for ( var t:int = 0; t < 80; t++ ) {\r
-                                       \r
-                                       if ( t < 16 ) {\r
-                                               // 6.1.a\r
-                                               w[ t ] = blocks[ i + t ];\r
-                                       } else {\r
-                                               // 6.1.b\r
-                                               w[ t ] = IntUtil.rol( w[ t - 3 ] ^ w[ t - 8 ] ^ w[ t - 14 ] ^ w[ t - 16 ], 1 );\r
-                                       }\r
-                                       \r
-                                       // 6.1.d\r
-                                       var temp:int = IntUtil.rol( a, 5 ) + f( t, b, c, d ) + e + int( w[ t ] ) + k( t );\r
-                                       \r
-                                       e = d;\r
-                                       d = c;\r
-                                       c = IntUtil.rol( b, 30 );\r
-                                       b = a;\r
-                                       a = temp;\r
-                               }\r
-                               \r
-                               // 6.1.e\r
-                               h0 += a;\r
-                               h1 += b;\r
-                               h2 += c;\r
-                               h3 += d;\r
-                               h4 += e;                \r
-                       }\r
-                       \r
-                       var byteArray:ByteArray = new ByteArray();\r
-                       byteArray.writeInt(h0);\r
-                       byteArray.writeInt(h1);\r
-                       byteArray.writeInt(h2);\r
-                       byteArray.writeInt(h3);\r
-                       byteArray.writeInt(h4);\r
-                       byteArray.position = 0;\r
-                       \r
-                       digest = new ByteArray();\r
-                       digest.writeBytes(byteArray);\r
-                       digest.position = 0;\r
-                       return byteArray;\r
-               }\r
-\r
-               /**\r
-                *  Performs the logical function based on t\r
-                */\r
-               private static function f( t:int, b:int, c:int, d:int ):int {\r
-                       if ( t < 20 ) {\r
-                               return ( b & c ) | ( ~b & d );\r
-                       } else if ( t < 40 ) {\r
-                               return b ^ c ^ d;\r
-                       } else if ( t < 60 ) {\r
-                               return ( b & c ) | ( b & d ) | ( c & d );\r
-                       }\r
-                       return b ^ c ^ d;\r
-               }\r
-               \r
-               /**\r
-                *  Determines the constant value based on t\r
-                */\r
-               private static function k( t:int ):int {\r
-                       if ( t < 20 ) {\r
-                               return 0x5a827999;\r
-                       } else if ( t < 40 ) {\r
-                               return 0x6ed9eba1;\r
-                       } else if ( t < 60 ) {\r
-                               return 0x8f1bbcdc;\r
-                       }\r
-                       return 0xca62c1d6;\r
-               }\r
-                                       \r
-               /**\r
-                *  Converts a ByteArray to a sequence of 16-word blocks\r
-                *  that we'll do the processing on.  Appends padding\r
-                *  and length in the process.\r
-                *\r
-                *  @param data         The data to split into blocks\r
-                *  @return                     An array containing the blocks into which data was split\r
-                */\r
-               private static function createBlocksFromByteArray( data:ByteArray ):Array\r
-               {\r
-                       var oldPosition:int = data.position;\r
-                       data.position = 0;\r
-                       \r
-                       var blocks:Array = new Array();\r
-                       var len:int = data.length * 8;\r
-                       var mask:int = 0xFF; // ignore hi byte of characters > 0xFF\r
-                       for( var i:int = 0; i < len; i += 8 )\r
-                       {\r
-                               blocks[ i >> 5 ] |= ( data.readByte() & mask ) << ( 24 - i % 32 );\r
-                       }\r
-                       \r
-                       // append padding and length\r
-                       blocks[ len >> 5 ] |= 0x80 << ( 24 - len % 32 );\r
-                       blocks[ ( ( ( len + 64 ) >> 9 ) << 4 ) + 15 ] = len;\r
-                       \r
-                       data.position = oldPosition;\r
-                       \r
-                       return blocks;\r
-               }\r
-                                       \r
-               /**\r
-                *  Converts a string to a sequence of 16-word blocks\r
-                *  that we'll do the processing on.  Appends padding\r
-                *  and length in the process.\r
-                *\r
-                *  @param s    The string to split into blocks\r
-                *  @return             An array containing the blocks that s was split into.\r
-                */\r
-               private static function createBlocksFromString( s:String ):Array\r
-               {\r
-                       var blocks:Array = new Array();\r
-                       var len:int = s.length * 8;\r
-                       var mask:int = 0xFF; // ignore hi byte of characters > 0xFF\r
-                       for( var i:int = 0; i < len; i += 8 ) {\r
-                               blocks[ i >> 5 ] |= ( s.charCodeAt( i / 8 ) & mask ) << ( 24 - i % 32 );\r
-                       }\r
-                       \r
-                       // append padding and length\r
-                       blocks[ len >> 5 ] |= 0x80 << ( 24 - len % 32 );\r
-                       blocks[ ( ( ( len + 64 ) >> 9 ) << 4 ) + 15 ] = len;\r
-                       return blocks;\r
-               }\r
-               \r
-       }\r
-}\r