Home

py-spectre @main - refs - log -
-
https://git.jolheiser.com/py-spectre.git
Python implementation for Spectre/Masterpassword
py-spectre / src / spectre / template.py
- raw
 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
from enum import Enum
from typing import Dict, List


class Template(Enum):
    MAXIMUM = "Maximum"
    LONG = "Long"
    MEDIUM = "Medium"
    SHORT = "Short"
    PIN = "PIN"
    NAME = "Name"
    PHRASE = "Phrase"
    BASIC = "Basic"


_templates: Dict[Template, List[str]] = {
    Template.MAXIMUM: [
        "anoxxxxxxxxxxxxxxxxx",
        "axxxxxxxxxxxxxxxxxno",
    ],
    Template.LONG: [
        "CvcvnoCvcvCvcv",
        "CvcvCvcvnoCvcv",
        "CvcvCvcvCvcvno",
        "CvccnoCvcvCvcv",
        "CvccCvcvnoCvcv",
        "CvccCvcvCvcvno",
        "CvcvnoCvccCvcv",
        "CvcvCvccnoCvcv",
        "CvcvCvccCvcvno",
        "CvcvnoCvcvCvcc",
        "CvcvCvcvnoCvcc",
        "CvcvCvcvCvccno",
        "CvccnoCvccCvcv",
        "CvccCvccnoCvcv",
        "CvccCvccCvcvno",
        "CvcvnoCvccCvcc",
        "CvcvCvccnoCvcc",
        "CvcvCvccCvccno",
        "CvccnoCvcvCvcc",
        "CvccCvcvnoCvcc",
        "CvccCvcvCvccno",
    ],
    Template.MEDIUM: [
        "CvcnoCvc",
        "CvcCvcno",
    ],
    Template.SHORT: [
        "Cvcn",
    ],
    Template.PIN: [
        "nnnn",
    ],
    Template.NAME: [
        "cvccvcvcv",
    ],
    Template.PHRASE: [
        "cvcc cvc cvccvcv cvc",
        "cvc cvccvcvcv cvcv",
        "cv cvccv cvc cvcvccv",
    ],
    Template.BASIC: [
        "aaanaaan",
        "aannaaan",
        "aaannaaa",
    ],
}

_characters: Dict[str, str] = {
    "V": "AEIOU",
    "C": "BCDFGHJKLMNPQRSTVWXYZ",
    "v": "aeiou",
    "c": "bcdfghjklmnpqrstvwxyz",
    "A": "AEIOUBCDFGHJKLMNPQRSTVWXYZ",
    "a": "AEIOUaeiouBCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz",
    "n": "0123456789",
    "o": "@&%?,=[]_:-+*$#!'^~;()/.",
    "x": "AEIOUaeiouBCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz0123456789!@#$%^&*()",
    " ": " ",
}