File: test_load_save.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 (89 lines) | stat: -rw-r--r-- 3,107 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
import rnp


def test_load_keys():
    rpgp = rnp.Rnp()
    assert rpgp.public_key_count() == 0
    assert rpgp.secret_key_count() == 0
    rpgp.load_keys(
        rnp.Input.from_path("tests/data/keyrings/gpg/pubring.gpg"), "GPG", False, True
    )
    assert rpgp.public_key_count() == 0
    assert rpgp.secret_key_count() == 0
    rpgp.load_keys(
        rnp.Input.from_path("tests/data/keyrings/gpg/pubring.gpg"), "GPG", True, False
    )
    assert rpgp.public_key_count() == 7
    assert rpgp.secret_key_count() == 0

    rpgp.load_keys(
        rnp.Input.from_path("tests/data/keyrings/gpg/secring.gpg"), "GPG", True, False
    )
    assert rpgp.public_key_count() == 7
    assert rpgp.secret_key_count() == 0
    rpgp.load_keys(
        rnp.Input.from_path("tests/data/keyrings/gpg/secring.gpg"), "GPG", False, True
    )
    assert rpgp.public_key_count() == 7
    assert rpgp.secret_key_count() == 7


def test_load_keys_public_from_secret():
    rpgp = rnp.Rnp()
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/secring.gpg"), "GPG")
    assert rpgp.public_key_count() == 7
    assert rpgp.secret_key_count() == 7


def test_save_keys():
    rpgp = rnp.Rnp()
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/pubring.gpg"), "GPG")
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/secring.gpg"), "GPG")

    # public
    outp = rnp.Output.to_bytes()
    rpgp.save_keys(outp, "GPG", True, False)
    assert {
        pkt["header"]["tag.str"]
        for pkt in rnp.parse(rnp.Input.from_bytes(outp.bytes()))
    } == {"Public Key", "Public Subkey", "User ID", "Signature"}

    # secret
    outp = rnp.Output.to_bytes()
    rpgp.save_keys(outp, "GPG", False, True)
    assert {
        pkt["header"]["tag.str"]
        for pkt in rnp.parse(rnp.Input.from_bytes(outp.bytes()))
    } == {"Secret Key", "Secret Subkey", "User ID", "Signature"}


def test_unload_keys():
    # public
    rpgp = rnp.Rnp()
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/pubring.gpg"), "GPG")
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/secring.gpg"), "GPG")
    assert rpgp.public_key_count() == 7
    assert rpgp.secret_key_count() == 7
    rpgp.unload_keys(True, False)
    assert rpgp.public_key_count() == 0
    assert rpgp.secret_key_count() == 7

    # secret
    rpgp = rnp.Rnp()
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/pubring.gpg"), "GPG")
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/secring.gpg"), "GPG")
    assert rpgp.public_key_count() == 7
    assert rpgp.secret_key_count() == 7
    rpgp.unload_keys(False, True)
    assert rpgp.public_key_count() == 7
    assert rpgp.secret_key_count() == 0

    # both
    rpgp = rnp.Rnp()
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/pubring.gpg"), "GPG")
    rpgp.load_keys(rnp.Input.from_path("tests/data/keyrings/gpg/secring.gpg"), "GPG")
    assert rpgp.public_key_count() == 7
    assert rpgp.secret_key_count() == 7
    rpgp.unload_keys()
    assert rpgp.public_key_count() == 0
    assert rpgp.secret_key_count() == 0