$58 GRAYBYTE WORDPRESS FILE MANAGER $81

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/imunify360/venv/lib/python3.11/site-packages/Crypto/Util/

HOME
Current File : /opt/imunify360/venv/lib/python3.11/site-packages/Crypto/Util//Padding.py
#
# Util/Padding.py :  Functions to manage padding
#
# ===================================================================
#
# Copyright (c) 2014, Legrandin <helderijs@gmail.com>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# ===================================================================

__all__ = [ 'pad', 'unpad' ]

from Crypto.Util.py3compat import *


def pad(data_to_pad, block_size, style='pkcs7'):
    """Apply standard padding.

    Args:
      data_to_pad (byte string):
        The data that needs to be padded.
      block_size (integer):
        The block boundary to use for padding. The output length is guaranteed
        to be a multiple of :data:`block_size`.
      style (string):
        Padding algorithm. It can be *'pkcs7'* (default), *'iso7816'* or *'x923'*.

    Return:
      byte string : the original data with the appropriate padding added at the end.
    """

    padding_len = block_size-len(data_to_pad)%block_size
    if style == 'pkcs7':
        padding = bchr(padding_len)*padding_len
    elif style == 'x923':
        padding = bchr(0)*(padding_len-1) + bchr(padding_len)
    elif style == 'iso7816':
        padding = bchr(128) + bchr(0)*(padding_len-1)
    else:
        raise ValueError("Unknown padding style")
    return data_to_pad + padding


def unpad(padded_data, block_size, style='pkcs7'):
    """Remove standard padding.

    Args:
      padded_data (byte string):
        A piece of data with padding that needs to be stripped.
      block_size (integer):
        The block boundary to use for padding. The input length
        must be a multiple of :data:`block_size`.
      style (string):
        Padding algorithm. It can be *'pkcs7'* (default), *'iso7816'* or *'x923'*.
    Return:
        byte string : data without padding.
    Raises:
      ValueError: if the padding is incorrect.
    """

    pdata_len = len(padded_data)
    if pdata_len == 0:
        raise ValueError("Zero-length input cannot be unpadded")
    if pdata_len % block_size:
        raise ValueError("Input data is not padded")
    if style in ('pkcs7', 'x923'):
        padding_len = bord(padded_data[-1])
        if padding_len<1 or padding_len>min(block_size, pdata_len):
            raise ValueError("Padding is incorrect.")
        if style == 'pkcs7':
            if padded_data[-padding_len:]!=bchr(padding_len)*padding_len:
                raise ValueError("PKCS#7 padding is incorrect.")
        else:
            if padded_data[-padding_len:-1]!=bchr(0)*(padding_len-1):
                raise ValueError("ANSI X.923 padding is incorrect.")
    elif style == 'iso7816':
        padding_len = pdata_len - padded_data.rfind(bchr(128))
        if padding_len<1 or padding_len>min(block_size, pdata_len):
            raise ValueError("Padding is incorrect.")
        if padding_len>1 and padded_data[1-padding_len:]!=bchr(0)*(padding_len-1):
            raise ValueError("ISO 7816-4 padding is incorrect.")
    else:
        raise ValueError("Unknown padding style")
    return padded_data[:-padding_len]


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
5 Aug 2025 4.30 AM
root / root
0755
__pycache__
--
5 Aug 2025 4.30 AM
root / root
0755
Counter.py
3.037 KB
4 Jul 2025 8.31 PM
root / root
0644
Counter.pyi
0.283 KB
4 Jul 2025 8.31 PM
root / root
0644
Padding.py
4.212 KB
4 Jul 2025 8.31 PM
root / root
0644
Padding.pyi
0.232 KB
4 Jul 2025 8.31 PM
root / root
0644
RFC1751.py
20.695 KB
4 Jul 2025 8.31 PM
root / root
0644
RFC1751.pyi
0.155 KB
4 Jul 2025 8.31 PM
root / root
0644
__init__.py
1.882 KB
4 Jul 2025 8.31 PM
root / root
0644
_cpu_features.py
1.942 KB
4 Jul 2025 8.31 PM
root / root
0644
_cpu_features.pyi
0.058 KB
4 Jul 2025 8.31 PM
root / root
0644
_cpuid_c.abi3.so
15.328 KB
4 Jul 2025 8.31 PM
root / root
0755
_file_system.py
2.12 KB
4 Jul 2025 8.31 PM
root / root
0644
_file_system.pyi
0.098 KB
4 Jul 2025 8.31 PM
root / root
0644
_raw_api.py
9.986 KB
4 Jul 2025 8.31 PM
root / root
0644
_raw_api.pyi
0.885 KB
4 Jul 2025 8.31 PM
root / root
0644
_strxor.abi3.so
15.32 KB
4 Jul 2025 8.31 PM
root / root
0755
asn1.py
35.321 KB
4 Jul 2025 8.31 PM
root / root
0644
asn1.pyi
3.716 KB
4 Jul 2025 8.31 PM
root / root
0644
number.py
94.112 KB
4 Jul 2025 8.31 PM
root / root
0644
number.pyi
0.952 KB
4 Jul 2025 8.31 PM
root / root
0644
py3compat.py
5.396 KB
4 Jul 2025 8.31 PM
root / root
0644
py3compat.pyi
0.817 KB
4 Jul 2025 8.31 PM
root / root
0644
strxor.py
5.313 KB
4 Jul 2025 8.31 PM
root / root
0644
strxor.pyi
0.237 KB
4 Jul 2025 8.31 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF