File: test_generate.py

package info (click to toggle)
py-rnp 0.1.0%2Bgit20221014.01b7129-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 424 kB
  • sloc: python: 3,062; sh: 8; makefile: 4
file content (115 lines) | stat: -rw-r--r-- 3,561 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import pytest
import rnp


@pytest.fixture
def rpgp():
    return rnp.Rnp()


def test_generate_rsa(rpgp):
    key = rpgp.generate_rsa("test-rsa", "hunter2", 1024, 1024)
    assert key.alg() == "RSA"
    assert list(key.userids()) == ["test-rsa"]
    assert key.bits() == 1024
    assert key.is_protected()
    assert len(list(key.subkeys())) == 1
    subkey = next(key.subkeys())
    assert subkey.is_protected()
    assert subkey.alg() == "RSA"
    assert subkey.bits() == 1024
    with pytest.raises(rnp.RnpException):
        key.unlock("badpass")
    key.unlock("hunter2")
    assert not key.is_locked()


def test_generate_rsa_nopass(rpgp):
    key = rpgp.generate_rsa("test", None, 1024, 1024)
    assert not key.is_locked()
    assert not key.is_protected()


def test_generate_dsa_elgamal_nosub(rpgp):
    key = rpgp.generate_dsa_elgamal("test-dsa-elg", None, 1024)
    assert key.alg() == "DSA"
    assert list(key.userids()) == ["test-dsa-elg"]
    assert key.bits() == 1024
    assert isinstance(key.qbits(), int)
    assert not key.is_locked()
    assert not key.is_protected()
    assert len(list(key.subkeys())) == 0


def test_generate_dsa_elgamal(rpgp):
    key = rpgp.generate_dsa_elgamal("test-dsa-elg", None, 1024, 1024)
    assert key.alg() == "DSA"
    assert list(key.userids()) == ["test-dsa-elg"]
    assert len(list(key.subkeys())) == 1
    subkey = next(key.subkeys())
    assert subkey.alg() == "ELGAMAL"
    assert subkey.bits() == 1024


def test_generate_ecdsa_ecdh(rpgp):
    key = rpgp.generate_ecdsa_ecdh("test-ecdsa-ecdh", None, "secp256k1")
    assert key.alg() == "ECDSA"
    assert list(key.userids()) == ["test-ecdsa-ecdh"]
    assert key.curve() == "secp256k1"
    assert len(list(key.subkeys())) == 1
    subkey = next(key.subkeys())
    assert subkey.alg() == "ECDH"
    assert subkey.curve() == "secp256k1"


def test_generate_eddsa_25519(rpgp):
    key = rpgp.generate_eddsa_25519("test-eddsa-25519", None)
    assert key.alg() == "EDDSA"
    assert list(key.userids()) == ["test-eddsa-25519"]
    assert key.curve() == "Ed25519"
    assert len(list(key.subkeys())) == 1
    subkey = next(key.subkeys())
    assert subkey.alg() == "ECDH"
    assert subkey.curve() == "Curve25519"


def test_generate_sm2(rpgp):
    key = rpgp.generate_sm2("test-sm2", None)
    assert key.alg() == "SM2"
    assert list(key.userids()) == ["test-sm2"]
    assert key.curve() == "SM2 P-256"
    assert len(list(key.subkeys())) == 1
    subkey = next(key.subkeys())
    assert subkey.alg() == "SM2"
    assert subkey.curve() == "SM2 P-256"


def test_generate_type_rsa(rpgp):
    key = rpgp.generate("test-rsa", None, "RSA", 1024, None)
    assert key.alg() == "RSA"
    assert list(key.userids()) == ["test-rsa"]
    assert key.bits() == 1024
    assert len(list(key.subkeys())) == 0


def test_generate_type_rsa_withsub(rpgp):
    key = rpgp.generate("test-rsa", None, "RSA", 1024, None, "RSA", 1024)
    assert key.alg() == "RSA"
    assert list(key.userids()) == ["test-rsa"]
    assert key.bits() == 1024
    assert len(list(key.subkeys())) == 1
    subkey = next(key.subkeys())
    assert subkey.alg() == "RSA"
    assert subkey.bits() == 1024


def test_generate_type_ecdsa_sm2(rpgp):
    key = rpgp.generate(
        "test-ecdsa-sm2", None, "ECDSA", 0, "brainpoolP256r1", "SM2", 0, None
    )
    assert key.alg() == "ECDSA"
    assert list(key.userids()) == ["test-ecdsa-sm2"]
    assert key.curve() == "brainpoolP256r1"
    assert len(list(key.subkeys())) == 1
    subkey = next(key.subkeys())
    assert subkey.alg() == "SM2"