4
* An ActionScript 3 implementation of the CBC confidentiality mode
5
* Copyright (c) 2007 Henri Torgemane
7
* See LICENSE.txt for full license information.
9
package com.hurlant.crypto.symmetric
11
import flash.utils.ByteArray;
14
* CBC confidentiality mode. why not.
16
public class CBCMode extends IVMode implements IMode
19
public function CBCMode(key:ISymmetricKey, padding:IPad = null) {
23
public function encrypt(src:ByteArray):void {
25
var vector:ByteArray = getIV4e();
26
for (var i:uint=0;i<src.length;i+=blockSize) {
27
for (var j:uint=0;j<blockSize;j++) {
28
src[i+j] ^= vector[j];
32
vector.writeBytes(src, i, blockSize);
35
public function decrypt(src:ByteArray):void {
36
var vector:ByteArray = getIV4d();
37
var tmp:ByteArray = new ByteArray;
38
for (var i:uint=0;i<src.length;i+=blockSize) {
40
tmp.writeBytes(src, i, blockSize);
42
for (var j:uint=0;j<blockSize;j++) {
43
src[i+j] ^= vector[j];
46
vector.writeBytes(tmp, 0, blockSize);
51
public function toString():String {
52
return key.toString()+"-cbc";