4 * A padding implementation of PKCS5.
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;
13 public class PKCS5 implements IPad
15 private var blockSize:uint;
17 public function PKCS5(blockSize:uint=0) {
18 this.blockSize = blockSize;
21 public function pad(a:ByteArray):void {
22 var c:uint = blockSize-a.length%blockSize;
23 for (var i:uint=0;i<c;i++){
27 public function unpad(a:ByteArray):void {
28 var c:uint = a.length%blockSize;
29 if (c!=0) throw new Error("PKCS#5::unpad: ByteArray.length isn't a multiple of the blockSize");
31 for (var i:uint=c;i>0;i--) {
32 var v:uint = a[a.length-1];
34 if (c!=v) throw new Error("PKCS#5:unpad: Invalid padding value. expected ["+c+"], found ["+v+"]");
39 public function setBlockSize(bs:uint):void {