Documentation ¶
Overview ¶
Package padding @file : padding.go @author : china.gdxs@gmail.com @time : 2024/2/3 16:47 @Description:
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Padder ¶
type Padder struct {
// contains filtered or unexported fields
}
Padder struct embeds attributes necessary for the padding calculation (e.g. block size). It implements the Padding interface.
func (*Padder) Pad ¶
Pad returns the byte array passed as a parameter padded with bytes such that the new byte array will be an exact multiple of the expected block size. For example, if the expected block size is 8 bytes (e.g. PKCS #5) and that the initial byte array is:
[]byte{0x0A, 0x0B, 0x0C, 0x0D}
the returned array will be:
[]byte{0x0A, 0x0B, 0x0C, 0x0D, 0x04, 0x04, 0x04, 0x04}
The value of each octet of the padding is the size of the padding. If the array passed as a parameter is already an exact multiple of the block size, the original array will be padded with a full block.
func (*Padder) Unpad ¶
Unpad removes the padding of a given byte array, according to the same rules as described in the Pad function. For example if the byte array passed as a parameter is:
[]byte{0x0A, 0x0B, 0x0C, 0x0D, 0x04, 0x04, 0x04, 0x04}
the returned array will be:
[]byte{0x0A, 0x0B, 0x0C, 0x0D}
type Padding ¶
Padding interface defines functions Pad and Unpad implemented for PKCS #5 and PKCS #7 types of padding.
func NewPkcs5Padding ¶
func NewPkcs5Padding() Padding
NewPkcs5Padding returns a PKCS5 padding type structure. The blocksize defaults to 8 bytes (64-bit). See https://tools.ietf.org/html/rfc2898 PKCS #5: Password-Based Cryptography. Specification Version 2.0
func NewPkcs7Padding ¶
NewPkcs7Padding returns a PKCS7 padding type structure. The blocksize is passed as a parameter. See https://tools.ietf.org/html/rfc2315 PKCS #7: Cryptographic Message Syntax Version 1.5. For example the block size for AES is 16 bytes (128 bits).