Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/python/ecdsa/ecdsa/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 2 kB image not shown  

Quelle  test_sha3.py

  Sprache: Python
 

try:
    import unittest2 as unittest
except ImportError:
    import unittest
import pytest

try:
    from gmpy2 import mpz

    GMPY = True
except ImportError:  # pragma: no cover
    try:
        from gmpy import mpz

        GMPY = True
    except ImportError:
        GMPY = False

from ._sha3 import shake_256
from ._compat import bytes_to_int, int_to_bytes

B2I_VECTORS = [
    (b"\x00\x01""big"1),
    (b"\x00\x01""little"0x0100),
    (b"""big"0),
    (b"\x00""little"0),
]


@pytest.mark.parametrize("bytes_in,endian,int_out", B2I_VECTORS)
def test_bytes_to_int(bytes_in, endian, int_out):
    out = bytes_to_int(bytes_in, endian)
    assert out == int_out


class TestBytesToInt(unittest.TestCase):
    def test_bytes_to_int_wrong_endian(self):
        with self.assertRaises(ValueError):
            bytes_to_int(b"\x00""middle")

    def test_int_to_bytes_wrong_endian(self):
        with self.assertRaises(ValueError):
            int_to_bytes(0, byteorder="middle")


@pytest.mark.skipif(GMPY == False, reason="requires gmpy or gmpy2")
def test_int_to_bytes_with_gmpy():
    assert int_to_bytes(mpz(1)) == b"\x01"


I2B_VECTORS = [
    (0None"big", b""),
    (01"big", b"\x00"),
    (1None"big", b"\x01"),
    (0x0100, None"little", b"\x00\x01"),
    (0x0100, 4"little", b"\x00\x01\x00\x00"),
    (14"big", b"\x00\x00\x00\x01"),
]


@pytest.mark.parametrize("int_in,length,endian,bytes_out", I2B_VECTORS)
def test_int_to_bytes(int_in, length, endian, bytes_out):
    out = int_to_bytes(int_in, length, endian)
    assert out == bytes_out


SHAKE_256_VECTORS = [
    (
        b"Message.",
        32,
        b"\x78\xa1\x37\xbb\x33\xae\xe2\x72\xb1\x02\x4f\x39\x43\xe5\xcf\x0c"
        b"\x4e\x9c\x72\x76\x2e\x34\x4c\xf8\xf9\xc3\x25\x9d\x4f\x91\x2c\x3a",
    ),
    (
        b"",
        32,
        b"\x46\xb9\xdd\x2b\x0b\xa8\x8d\x13\x23\x3b\x3f\xeb\x74\x3e\xeb\x24"
        b"\x3f\xcd\x52\xea\x62\xb8\x1b\x82\xb5\x0c\x27\x64\x6e\xd5\x76\x2f",
    ),
    (
        b"message",
        32,
        b"\x86\x16\xe1\xe4\xcf\xd8\xb5\xf7\xd9\x2d\x43\xd8\x6e\x1b\x14\x51"
        b"\xa2\xa6\x5a\xf8\x64\xfc\xb1\x26\xc2\x66\x0a\xb3\x46\x51\xb1\x75",
    ),
    (
        b"message",
        16,
        b"\x86\x16\xe1\xe4\xcf\xd8\xb5\xf7\xd9\x2d\x43\xd8\x6e\x1b\x14\x51",
    ),
    (
        b"message",
        64,
        b"\x86\x16\xe1\xe4\xcf\xd8\xb5\xf7\xd9\x2d\x43\xd8\x6e\x1b\x14\x51"
        b"\xa2\xa6\x5a\xf8\x64\xfc\xb1\x26\xc2\x66\x0a\xb3\x46\x51\xb1\x75"
        b"\x30\xd6\xba\x2a\x46\x65\xf1\x9d\xf0\x62\x25\xb1\x26\xd1\x3e\xed"
        b"\x91\xd5\x0d\xe7\xb9\xcb\x65\xf3\x3a\x46\xae\xd3\x6c\x7d\xc5\xe8",
    ),
    (
        b"A" * 1024,
        32,
        b"\xa5\xef\x7e\x30\x8b\xe8\x33\x64\xe5\x9c\xf3\xb5\xf3\xba\x20\xa3"
        b"\x5a\xe7\x30\xfd\xbc\x33\x11\xbf\x83\x89\x50\x82\xb4\x41\xe9\xb3",
    ),
]


@pytest.mark.parametrize("msg,olen,ohash", SHAKE_256_VECTORS)
def test_shake_256(msg, olen, ohash):
    out = shake_256(msg, olen)
    assert out == bytearray(ohash)

Messung V0.5 in Prozent
C=96 H=91 G=93

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet am  2026-08-25) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.