[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.15.4.70: ~ $
# -*- coding: utf-8 -*-
#
# ===================================================================
# The contents of this file are dedicated to the public domain.  To
# the extent that dedication to the public domain is not available,
# everyone is granted a worldwide, perpetual, royalty-free,
# non-exclusive license to exercise all rights associated with the
# contents of this file for any purpose whatsoever.
# No rights are reserved.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# ===================================================================

from Crypto.Util.py3compat import bord

from Crypto.Util._raw_api import (load_pycryptodome_raw_lib,
                                  VoidPointer, SmartPointer,
                                  create_string_buffer,
                                  get_raw_buffer, c_size_t,
                                  c_uint8_ptr)

_raw_sha224_lib = load_pycryptodome_raw_lib("Crypto.Hash._SHA224",
                        """
                        int SHA224_init(void **shaState);
                        int SHA224_destroy(void *shaState);
                        int SHA224_update(void *hs,
                                          const uint8_t *buf,
                                          size_t len);
                        int SHA224_digest(const void *shaState,
                                          uint8_t *digest,
                                          size_t digest_size);
                        int SHA224_copy(const void *src, void *dst);

                        int SHA224_pbkdf2_hmac_assist(const void *inner,
                                            const void *outer,
                                            const uint8_t *first_digest,
                                            uint8_t *final_digest,
                                            size_t iterations,
                                            size_t digest_size);
                        """)

class SHA224Hash(object):
    """A SHA-224 hash object.
    Do not instantiate directly.
    Use the :func:`new` function.

    :ivar oid: ASN.1 Object ID
    :vartype oid: string

    :ivar block_size: the size in bytes of the internal message block,
                      input to the compression function
    :vartype block_size: integer

    :ivar digest_size: the size in bytes of the resulting hash
    :vartype digest_size: integer
    """

    # The size of the resulting hash in bytes.
    digest_size = 28
    # The internal block size of the hash algorithm in bytes.
    block_size = 64
    # ASN.1 Object ID
    oid = '2.16.840.1.101.3.4.2.4'

    def __init__(self, data=None):
        state = VoidPointer()
        result = _raw_sha224_lib.SHA224_init(state.address_of())
        if result:
            raise ValueError("Error %d while instantiating SHA224"
                             % result)
        self._state = SmartPointer(state.get(),
                                   _raw_sha224_lib.SHA224_destroy)
        if data:
            self.update(data)

    def update(self, data):
        """Continue hashing of a message by consuming the next chunk of data.

        Args:
            data (byte string/byte array/memoryview): The next chunk of the message being hashed.
        """

        result = _raw_sha224_lib.SHA224_update(self._state.get(),
                                               c_uint8_ptr(data),
                                               c_size_t(len(data)))
        if result:
            raise ValueError("Error %d while hashing data with SHA224"
                             % result)

    def digest(self):
        """Return the **binary** (non-printable) digest of the message that has been hashed so far.

        :return: The hash digest, computed over the data processed so far.
                 Binary form.
        :rtype: byte string
        """

        bfr = create_string_buffer(self.digest_size)
        result = _raw_sha224_lib.SHA224_digest(self._state.get(),
                                               bfr,
                                               c_size_t(self.digest_size))
        if result:
            raise ValueError("Error %d while making SHA224 digest"
                             % result)

        return get_raw_buffer(bfr)

    def hexdigest(self):
        """Return the **printable** digest of the message that has been hashed so far.

        :return: The hash digest, computed over the data processed so far.
                 Hexadecimal encoded.
        :rtype: string
        """

        return "".join(["%02x" % bord(x) for x in self.digest()])

    def copy(self):
        """Return a copy ("clone") of the hash object.

        The copy will have the same internal state as the original hash
        object.
        This can be used to efficiently compute the digests of strings that
        share a common initial substring.

        :return: A hash object of the same type
        """

        clone = SHA224Hash()
        result = _raw_sha224_lib.SHA224_copy(self._state.get(),
                                             clone._state.get())
        if result:
            raise ValueError("Error %d while copying SHA224" % result)
        return clone

    def new(self, data=None):
        """Create a fresh SHA-224 hash object."""

        return SHA224Hash(data)


def new(data=None):
    """Create a new hash object.

    :parameter data:
        Optional. The very first chunk of the message to hash.
        It is equivalent to an early call to :meth:`SHA224Hash.update`.
    :type data: byte string/byte array/memoryview

    :Return: A :class:`SHA224Hash` hash object
    """
    return SHA224Hash().new(data)


# The size of the resulting hash in bytes.
digest_size = SHA224Hash.digest_size

# The internal block size of the hash algorithm in bytes.
block_size = SHA224Hash.block_size


def _pbkdf2_hmac_assist(inner, outer, first_digest, iterations):
    """Compute the expensive inner loop in PBKDF-HMAC."""

    assert iterations > 0

    bfr = create_string_buffer(len(first_digest));
    result = _raw_sha224_lib.SHA224_pbkdf2_hmac_assist(
                    inner._state.get(),
                    outer._state.get(),
                    first_digest,
                    bfr,
                    c_size_t(iterations),
                    c_size_t(len(first_digest)))

    if result:
        raise ValueError("Error %d with PBKDF2-HMAC assist for SHA224" % result)

    return get_raw_buffer(bfr)

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
BLAKE2b.py File 9.2 KB 0644
BLAKE2b.pyi File 906 B 0644
BLAKE2s.py File 9.21 KB 0644
BLAKE2s.pyi File 739 B 0644
CMAC.py File 10.11 KB 0644
CMAC.pyi File 822 B 0644
HMAC.py File 6.86 KB 0644
HMAC.pyi File 624 B 0644
KMAC128.py File 5.81 KB 0644
KMAC128.pyi File 903 B 0644
KMAC256.py File 2.84 KB 0644
KMAC256.pyi File 226 B 0644
KangarooTwelve.py File 8.82 KB 0644
KangarooTwelve.pyi File 572 B 0644
MD2.py File 5.97 KB 0644
MD2.pyi File 492 B 0644
MD4.py File 6.43 KB 0644
MD4.pyi File 532 B 0644
MD5.py File 6.46 KB 0644
MD5.pyi File 492 B 0644
Poly1305.py File 7.88 KB 0644
Poly1305.pyi File 665 B 0644
RIPEMD.py File 1.17 KB 0644
RIPEMD.pyi File 94 B 0644
RIPEMD160.py File 6.25 KB 0644
RIPEMD160.pyi File 516 B 0644
SHA.py File 1.12 KB 0644
SHA.pyi File 161 B 0644
SHA1.py File 6.53 KB 0644
SHA1.pyi File 536 B 0644
SHA224.py File 6.74 KB 0644
SHA224.pyi File 544 B 0644
SHA256.py File 6.74 KB 0644
SHA256.pyi File 612 B 0644
SHA384.py File 6.74 KB 0644
SHA384.pyi File 544 B 0644
SHA3_224.py File 6.03 KB 0644
SHA3_224.pyi File 605 B 0644
SHA3_256.py File 6.03 KB 0644
SHA3_256.pyi File 605 B 0644
SHA3_384.py File 6.13 KB 0644
SHA3_384.pyi File 605 B 0644
SHA3_512.py File 5.99 KB 0644
SHA3_512.pyi File 605 B 0644
SHA512.py File 7.54 KB 0644
SHA512.pyi File 622 B 0644
SHAKE128.py File 4.65 KB 0644
SHAKE128.pyi File 437 B 0644
SHAKE256.py File 4.65 KB 0644
SHAKE256.pyi File 437 B 0644
TupleHash128.py File 4.61 KB 0644
TupleHash128.pyi File 652 B 0644
TupleHash256.py File 2.84 KB 0644
TupleHash256.pyi File 144 B 0644
_BLAKE2b.abi3.so File 26.78 KB 0755
_BLAKE2s.abi3.so File 26.32 KB 0755
_MD2.abi3.so File 22.59 KB 0755
_MD4.abi3.so File 26.55 KB 0755
_MD5.abi3.so File 31.26 KB 0755
_RIPEMD160.abi3.so File 59.3 KB 0755
_SHA1.abi3.so File 70.38 KB 0755
_SHA224.abi3.so File 44.7 KB 0755
_SHA256.abi3.so File 44.76 KB 0755
_SHA384.abi3.so File 52.89 KB 0755
_SHA512.abi3.so File 52.93 KB 0755
__init__.py File 1.21 KB 0644
__init__.pyi File 0 B 0644
_ghash_clmul.abi3.so File 57.01 KB 0755
_ghash_portable.abi3.so File 24.44 KB 0755
_keccak.abi3.so File 40.66 KB 0755
_poly1305.abi3.so File 32.64 KB 0755
cSHAKE128.py File 6.17 KB 0644
cSHAKE128.pyi File 499 B 0644
cSHAKE256.py File 2.15 KB 0644
cSHAKE256.pyi File 231 B 0644
keccak.py File 7.37 KB 0644
keccak.pyi File 741 B 0644