diff --git a/README.md b/README.md new file mode 100644 index 0000000..6e3fcaa --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +

PKCS7-Padding

+ +Implementation of PKCS7 padding in C. It can be used to pre-prepare data before block cipher using (for example, AES). + +# Algorithm description + + PKCS7 is described in [RFC 5652](https://tools.ietf.org/html/rfc5652#section-6.3). + + Some content-encryption algorithms assume the input length is a + multiple of k octets, where k is greater than one. For such + algorithms, the input shall be padded at the trailing end with + k-(lth mod k) octets all having value k-(lth mod k), where lth is + the length of the input. In other words, the input is padded at + the trailing end with one of the following strings: + + 01 -- if lth mod k = k-1 + 02 02 -- if lth mod k = k-2 + . + . + . + k k ... k k -- if lth mod k = 0 + + The padding can be removed unambiguously since all input is padded, + including input values that are already a multiple of the block size, + and no padding string is a suffix of another. This padding method is + well defined if and only if k is less than 256.