예제 #1
0
def test_not_enabled():
    # TODO: test broken as the compiled lib determines which algorithms are supported and enabled
    for alg_name in oqs.get_supported_sig_mechanisms():
        if alg_name not in oqs.get_enabled_sig_mechanisms():
            # found a non-enabled but supported alg
            try:
                with oqs.Signature(alg_name) as sig:
                    raise AssertionError(
                        "oqs.MechanismNotEnabledError was not raised.")
            except oqs.MechanismNotEnabledError:
                pass
            except E:
                raise AssertionError("An unexpected exception was raised. " +
                                     E)
예제 #2
0
def check_correctness(alg_name):
    with oqs.Signature(alg_name) as sig:
        message = bytes(random.getrandbits(8) for _ in range(100))
        public_key = sig.generate_keypair()
        signature = sig.sign(message)
        assert sig.verify(message, signature, public_key)
예제 #3
0
파일: hello.py 프로젝트: simewu/liboqs
import oqs
import random

print ("Custom test dilithium3")

message = bytes(random.getrandbits(8) for _ in range (100))
sig = oqs.Signature("DILITHIUM_3")
signature = sig.generate_keypair()
privateKey = sig.export_secret_key()

print (signature)
print ()
print (privateKey)
예제 #4
0
import oqs

#######################################################################
# signature example
#######################################################################

sigs = oqs.get_enabled_sig_mechanisms()

print("Enabled signature mechanisms:")
pprint(sigs, compact="True")

message = "This is the message to sign".encode()

# create signer and verifier with default signature mechanisms
sigalg = "DEFAULT"
with oqs.Signature(sigalg) as signer:
    with oqs.Signature(sigalg) as verifier:
        print("\nSignature details:")
        pprint(signer.details)

        # signer generates its keypair
        signer_public_key = signer.generate_keypair()
        # optionally, the secret key can be obtained by calling export_secret_key()
        # and the signer can later be re-instantiated with the key pair:
        # secret_key = signer.export_secret_key()
        # store key pair, wait... (session resumption):
        # signer = oqs.Signature(sigalg, secret_key)

        # signer signs the message
        signature = signer.sign(message)
예제 #5
0
    pprint(client.details)
    #public key generation
    public_key = client.generate_keypair()
    pq_file_pwd = get_pwd(public_key)
    file_pwd = client.decap_secret(pq_file_pwd)
    print('Secret key recieved by client')
    print(file_pwd)
    sleep(8)
    cls_scr()
    print("next up quantum signature verification")
    sleep(3)

sig_alg = 'DILITHIUM_2'

print("Post Quantum signature scheme dilithium2 demonstration")
with oqs.Signature(sig_alg) as client:
    cls_scr()
    print("Client side")
    pprint(client.details)
    sleep(5)
    # cls_scr()
    pub_key,sign,msg = sign_msg()
    if client.verify( msg, sign, pub_key):
        print("Message verified")
        print('Message from server')
        print(msg.decode())
    else:
        print("Verification Failed")

sleep(5)
cls_scr()
예제 #6
0
def get_nist_level(sign):
    with oqs.Signature(sign) as client:
        level = client.details["claimed_nist_level"]
    return level