<s> from __future__ import absolute_import , unicode_literals <EOL> from wechatpy . utils import to_binary , byte2int <EOL> class PKCS7Encoder ( object ) : <EOL> block_size = <NUM_LIT:32> <EOL> @ classmethod <EOL> def encode ( cls , text ) : <EOL> length = len ( text ) <EOL> padding_count = cls . block_size - length % cls . block_size <EOL> if padding_count == <NUM_LIT:0> : <EOL> padding_count = cls . block_size <EOL> padding = to_binary ( chr ( padding_count ) ) <EOL> return text + padding * padding_count <EOL> @ classmethod <EOL> def decode ( cls , decrypted ) : <EOL> padding = byte2int ( decrypted [ - <NUM_LIT:1> ] ) <EOL> if padding < <NUM_LIT:1> or padding > <NUM_LIT:32> : <EOL> padding = <NUM_LIT:0> <EOL> return decrypted [ : - padding ] </s>
