pad with zeros or random bytes if SecureRandom is specified in constructor.
Test X923 padding scheme.
X923Pad padding; ubyte[] block = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]; padding.addPadding(block, 15); assert(block == [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,1], "X923Padding failed"); assert(padding.padCount(block) == 1, "X923Padding failed"); padding.addPadding(block, 7); assert(block == [0,1,2,3,4,5,6,0,0,0,0,0,0,0,0,9], "X923Padding failed"); assert(padding.padCount(block) == 9, "X923Padding failed"); padding.addPadding(block, 0); assert(block == [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16], "X923Padding failed"); assert(padding.padCount(block) == 16, "X923Padding failed");
A ANSI X.923 block cipher padding implementation. This code does not support random padding anymore, because the author thinks its more susceptible to padding oracle attacks than deterministic zero padding.