예제 #1
0
        public static void encrypt(global::haxe.io.Bytes src, global::haxe.io.Bytes iv, int blockSize, global::haxe.lang.Function encryptBlock)
        {
                        #line 9 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
            global::haxe.io.Bytes vector = iv.sub(0, iv.length);
            int i = 0;
                        #line 11 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
            int len = src.length;
            while ((i < len))
            {
                                #line 14 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                global::haxe.io.Bytes plainText = src.sub(i, blockSize);
                {
                                        #line 15 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                    int _g = 0;
                                        #line 15 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                    int _g1 = blockSize;
                                        #line 15 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                    while ((_g < _g1))
                    {
                                                #line 15 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                        int j = _g++;
                                                #line 17 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                        src.b[(i + j)] = ((byte)((((int)(((byte)(src.b[(i + j)])))) ^ ((int)(((byte)(vector.b[j])))))));
                    }
                }

                                #line 20 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                encryptBlock.__hx_invoke4_o(default(double), src, ((double)(i)), global::haxe.lang.Runtime.undefined, default(double), src, ((double)(i)), global::haxe.lang.Runtime.undefined);
                vector = src.sub(i, blockSize);
                                #line 22 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                {
                                        #line 22 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                    int _g2 = 0;
                                        #line 22 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                    int _g3 = blockSize;
                                        #line 22 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                    while ((_g2 < _g3))
                    {
                                                #line 22 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                        int j1 = _g2++;
                                                #line 24 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                        vector.b[j1] = ((byte)((((int)(((byte)(vector.b[j1])))) ^ ((int)(((byte)(plainText.b[j1])))))));
                    }
                }

                                #line 26 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\PCBC.hx"
                i += blockSize;
            }
        }
예제 #2
0
        public static void encrypt(global::haxe.io.Bytes src, global::haxe.io.Bytes iv, int blockSize, global::haxe.lang.Function encryptBlock)
        {
                        #line 9 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
            global::haxe.io.Bytes vector = iv.sub(0, iv.length);
            int i = 0;
                        #line 11 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
            int len = src.length;
            while ((i < len))
            {
                                #line 14 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
                encryptBlock.__hx_invoke4_o(default(double), vector, ((double)(0)), global::haxe.lang.Runtime.undefined, default(double), vector, ((double)(0)), global::haxe.lang.Runtime.undefined);
                int block = ((((i + blockSize) > len)) ? ((len - i)) : (blockSize));
                                #line 16 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
                {
                                        #line 16 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
                    int _g = 0;
                                        #line 16 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
                    int _g1 = block;
                                        #line 16 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
                    while ((_g < _g1))
                    {
                                                #line 16 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
                        int j = _g++;
                                                #line 18 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
                        src.b[(i + j)] = ((byte)((((int)(((byte)(src.b[(i + j)])))) ^ ((int)(((byte)(vector.b[j])))))));
                    }
                }

                                #line 21 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CFB.hx"
                vector = src.sub(i, block);
                i     += blockSize;
            }
        }
예제 #3
0
 public static global::haxe.io.Bytes unpad(global::haxe.io.Bytes encrypt)
 {
     unchecked {
                         #line 22 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\AnsiX923.hx"
         int padding = ((int)(((byte)(encrypt.b[(encrypt.length - 1)]))));
         return(encrypt.sub(0, (encrypt.length - padding)));
     }
                 #line default
 }
예제 #4
0
        public static void encrypt(global::haxe.io.Bytes src, global::haxe.io.Bytes iv, int blockSize, global::haxe.lang.Function encryptBlock)
        {
            unchecked {
                                #line 9 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                global::haxe.io.Bytes vector = null;
                global::haxe.io.Bytes vkey   = iv.sub(0, iv.length);
                                #line 11 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                int i   = 0;
                int len = src.length;
                                #line 13 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                while ((i < len))
                {
                                        #line 15 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                    vector = vkey.sub(0, vkey.length);
                    encryptBlock.__hx_invoke4_o(default(double), vector, ((double)(0)), global::haxe.lang.Runtime.undefined, default(double), vector, ((double)(0)), global::haxe.lang.Runtime.undefined);
                                        #line 18 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                    int block = ((((i + blockSize) > len)) ? ((len - i)) : (blockSize));
                    {
                                                #line 19 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                        int _g = 0;
                                                #line 19 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                        int _g1 = block;
                                                #line 19 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                        while ((_g < _g1))
                        {
                                                        #line 19 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                            int j = _g++;
                                                        #line 21 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                            src.b[(i + j)] = ((byte)((((int)(((byte)(src.b[(i + j)])))) ^ ((int)(((byte)(vector.b[j])))))));
                        }
                    }

                                        #line 24 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                    int j1 = blockSize;
                    while ((j1-- >= 0))
                    {
                                                #line 26 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                        vkey.b[j1] = ((byte)((((int)(((byte)(vkey.b[j1])))) + 1)));
                        if ((((int)(((byte)(vkey.b[j1])))) != 0))
                        {
                                                        #line 27 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                            break;
                        }
                    }

                                        #line 30 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\mode\\CTR.hx"
                    i += blockSize;
                }
            }
                        #line default
        }
예제 #5
0
        public static global::haxe.io.Bytes unpad(global::haxe.io.Bytes encrypt)
        {
            unchecked {
                                #line 22 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\BitPadding.hx"
                int padding = 0;
                int pos     = (encrypt.length - 1);
                                #line 24 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\BitPadding.hx"
                while (((padding != 128) && (pos > -1)))
                {
                                        #line 25 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\BitPadding.hx"
                    padding = ((int)(((byte)(encrypt.b[pos]))));
                    --pos;
                }

                                #line 28 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\BitPadding.hx"
                return(encrypt.sub(0, (pos + 1)));
            }
                        #line default
        }
예제 #6
0
        public static global::haxe.io.Bytes unpad(global::haxe.io.Bytes encrypt)
        {
            unchecked {
                                #line 21 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\NullPadding.hx"
                int padding = 0;
                int pos     = encrypt.length;
                                #line 23 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\NullPadding.hx"
                while (((padding == 0) && (pos > 0)))
                {
                                        #line 24 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\NullPadding.hx"
                    --pos;
                    padding = ((int)(((byte)(encrypt.b[pos]))));
                }

                                #line 27 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\NullPadding.hx"
                return(encrypt.sub(0, (pos + 1)));
            }
                        #line default
        }
예제 #7
0
        public static global::haxe.io.Bytes unpad(global::haxe.io.Bytes encrypt)
        {
            unchecked {
                                #line 23 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\TBC.hx"
                int pos         = (encrypt.length - 1);
                int paddingByte = ((int)(((byte)(encrypt.b[pos]))));
                                #line 25 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\TBC.hx"
                int padding = paddingByte;
                while (((padding == paddingByte) && (pos > -1)))
                {
                                        #line 27 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\TBC.hx"
                    --pos;
                    padding = ((int)(((byte)(encrypt.b[pos]))));
                }

                                #line 30 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\TBC.hx"
                return(encrypt.sub(0, (pos + 1)));
            }
                        #line default
        }
예제 #8
0
        public static global::haxe.io.Bytes unpad(global::haxe.io.Bytes encrypt)
        {
            unchecked {
                                #line 23 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                int padding = ((int)(((byte)(encrypt.b[(encrypt.length - 1)]))));
                if ((padding > encrypt.length))
                {
                                        #line 24 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                    throw global::haxe.lang.HaxeException.wrap(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat("Cannot remove ", global::haxe.lang.Runtime.toString(padding)), " bytes, because message is "), global::haxe.lang.Runtime.toString(encrypt.length)), " bytes"));
                }

                                #line 25 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                int block = (encrypt.length - padding);
                {
                                        #line 26 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                    int _g = block;
                                        #line 26 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                    int _g1 = encrypt.length;
                                        #line 26 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                    while ((_g < _g1))
                    {
                                                #line 26 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                        int i = _g++;
                        if ((((int)(((byte)(encrypt.b[i])))) != padding))
                        {
                                                        #line 27 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                            throw global::haxe.lang.HaxeException.wrap(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat("Invalid padding value. Got ", global::haxe.lang.Runtime.toString(((int)(((byte)(encrypt.b[i])))))), ", expected "), global::haxe.lang.Runtime.toString(padding)), " at position "), global::haxe.lang.Runtime.toString(i)));
                        }
                    }
                }

                                #line 29 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\PKCS7.hx"
                return(encrypt.sub(0, block));
            }
                        #line default
        }
예제 #9
0
        public virtual void readUncompressedBlock(global::haxe.io.Bytes data)
        {
            unchecked
            {
                int sectorSize = 4096;
                int offset     = sectorSize;
                while (((offset + 3) < data.length))
                {
                    int entryType = this.getInteger(data, offset);
                    if ((entryType == 2))
                    {
                        global::alphatab.importer.GpxFile file = new global::alphatab.importer.GpxFile();
                        file.fileName = this.getString(data, (offset + 4), 127);
                        file.fileSize = this.getInteger(data, (offset + 140));
                        bool storeFile = default(bool);
                        if ((this._fileFilter != default(global::haxe.lang.Function)))
                        {
                            storeFile = ((bool)(this._fileFilter.__hx_invoke1_o(default(double), file.fileName)));
                        }
                        else
                        {
                            storeFile = this.defaultFileFilter(file.fileName);
                        }

                        if (storeFile)
                        {
                            this.files.push(file);
                        }

                        int dataPointerOffset = (offset + 148);
                        int sector            = 0;
                        int sectorCount       = 0;
                        global::alphatab.io.BytesArray fileData = default(global::alphatab.io.BytesArray);
                        if (storeFile)
                        {
                            fileData = new global::alphatab.io.BytesArray(new global::haxe.lang.Null <int>(file.fileSize, true));
                        }
                        else
                        {
                            fileData = default(global::alphatab.io.BytesArray);
                        }

                        while (((sector = this.getInteger(data, (dataPointerOffset + (4 * sectorCount++)))) != 0))
                        {
                            offset = (sector * sectorSize);
                            if (storeFile)
                            {
                                fileData.addBytes(data.sub(offset, sectorSize));
                            }
                        }

                        if (storeFile)
                        {
                            int __temp_stmt507 = default(int);
                            {
                                double x = global::System.Math.Min(((double)(file.fileSize)), ((double)(fileData.length)));
                                __temp_stmt507 = ((int)(x));
                            }

                            file.data = global::haxe.io.Bytes.alloc(__temp_stmt507);
                            file.data.blit(0, fileData.getBuffer(), 0, file.data.length);
                        }
                    }

                    offset += sectorSize;
                }
            }
        }
예제 #10
0
 public static global::haxe.io.Bytes pad(global::haxe.io.Bytes ciphertext, int blockSize)
 {
                 #line 9 "C:\\HaxeToolkit\\haxe\\lib\\crypto\\0,3,0\\src\\haxe\\crypto\\padding\\NoPadding.hx"
     return(ciphertext.sub(0, ciphertext.length));
 }