4 * A padding implementation of PKCS5.
\r
5 * Copyright (c) 2007 Henri Torgemane
\r
7 * See LICENSE.txt for full license information.
\r
9 package com.hurlant.crypto.symmetric
\r
11 import flash.utils.ByteArray;
\r
13 public class PKCS5 implements IPad
\r
15 private var blockSize:uint;
\r
17 public function PKCS5(blockSize:uint=0) {
\r
18 this.blockSize = blockSize;
\r
21 public function pad(a:ByteArray):void {
\r
22 var c:uint = blockSize-a.length%blockSize;
\r
23 for (var i:uint=0;i<c;i++){
\r
27 public function unpad(a:ByteArray):void {
\r
28 var c:uint = a.length%blockSize;
\r
29 if (c!=0) throw new Error("PKCS#5::unpad: ByteArray.length isn't a multiple of the blockSize");
\r
31 for (var i:uint=c;i>0;i--) {
\r
32 var v:uint = a[a.length-1];
\r
34 if (c!=v) throw new Error("PKCS#5:unpad: Invalid padding value. expected ["+c+"], found ["+v+"]");
\r
39 public function setBlockSize(bs:uint):void {
\r