1
|
import pytest
|
2
|
|
3
|
from src.services.cryptography import CryptographyService
|
4
|
|
5
|
|
6
|
@pytest.fixture
|
7
|
def service():
|
8
|
# provide a CryptographyService fixture
|
9
|
return CryptographyService()
|
10
|
|
11
|
|
12
|
@pytest.fixture
|
13
|
def private_key_pem():
|
14
|
return """
|
15
|
-----BEGIN RSA PRIVATE KEY-----
|
16
|
MIIEpgIBAAKCAQEA8Ue4iYHc7ECrdHij9JHLRPhw9YXsK09ojPZaMW+GnhJrh//V
|
17
|
uOlUsA3Qb2xrdpwcevpTy8+96FU+w/laDA0KGsRPDfZnRYFGfonzuhJKDNkU7p2H
|
18
|
sqKp+ttxNEFm2ZTPo9KvrvQrg286RUMu+b0e/PlSG9X3L/+OMx3GsblBbXKNQmSq
|
19
|
T5qdWmoFMRSR4Z7wufAGebJXBTn8Z5r1KkhLLViRYdWC4V9+/ZcCg8eMHG2StRGI
|
20
|
MutrhidznFaTvOSiw6ehdFmv7qlEeUPj6kiSHMe6duwrFP2p9fyp4hWjjW72CUhJ
|
21
|
JadXNzVk5/HPb/BxFGmpdkVvDZJbUQ17IotW9QIDAQABAoIBAQDUzohBp+t96LAQ
|
22
|
o1Mgo/Kf22xt8PfTX098fNAiKBaYlvCG3CvZ0tqiCR0dGYhS7e/ku6Nq8Mi0AXPB
|
23
|
j81PMbUG1LxROVHuqM3PT8dLB1SOrmza5NBJy1SW8DORflnDcJAPEwVnDu7OFy1S
|
24
|
56WoGZkaUKCN8pL5n7IA/bNBD39YkmkBonzWRhqaPnkq54chHpkg0a0dnGkftHbM
|
25
|
j6mY3s+LfK5TP+mSgGKD2eWBxEuYjYoqIZhGLQ3/L7dC8vBy7plfgpxaJkI8AQfg
|
26
|
SVg821yU3Ms65W8JEQga5sm0SPxbxUkoMvQR4WWsWLVszKoOZ8kQBLOTtHasC4WH
|
27
|
vXkg53khAoGBAPjz1BCYrhpPFlSiSnQ2sIS2GbqYIYVaSjCuDrmHzCQDJaGfrQs8
|
28
|
OZJDrikZUFxmSTKk38CUEqWQrhMR8YERnc5MgdYjX2HqmrBhFBrNMzH7EUVLhbRp
|
29
|
Dppe4DSB1b6P8lvaERrjmtPZ9FxZML8uJDw0aaVBKYVmKlJREnQP+ADNAoGBAPgc
|
30
|
Snsksn/GM4jVeHzkxw6uCuS//iek6lHMgEvpqdWnvN1X+KQipxZTQZV3OvhmgtJI
|
31
|
zg3Kv5TPn0Sr4oEw87eRGKQj0G/wh27fhe22beWrQMPxMq6R9ny/gvBnfxz/keIW
|
32
|
wAs3wRMHKiVub8FRMEdIOHEMeWrD+dfaGuuV5Y7JAoGBALelXsWTa7N6rfVm9td9
|
33
|
1H9Buf8c5HVz4pDAhZo1Y9EZBTSSDtvf5HRSOvKUeuR+i/axC2ILmSnLba4hqW7V
|
34
|
6PxbEdg+pckcgFomcudGgkKXe+kLSimI6j3UST5SnLODinxZhA664ebvvEQ3gy80
|
35
|
wYQsAdbnF9MRR50Lszos4XztAoGBAMQCnbjhif811zrP4stQdg4b41FKeIBbYh7T
|
36
|
X7wZUmoPhT6cpDsPgU864QIy2qypV8rHZ7ovpeDrkdjPrjcANFqeT4hFHwOAU459
|
37
|
GjJtQC8EdzsVT0Po3oE5TzmbmimPonGqJXf3SRo+O8ask69285ws6yIsh7OYNcaY
|
38
|
cVIS7vM5AoGBAPK2UieUMGTfK/SJ7tizApFkvonaInY8rKmiEeF9zuOxJBJ+mjXC
|
39
|
2dGH5h6itrdbQw7ykrnf4KgmS1ZDamrCYlhMRewbk1gzEvBV1I6W67DaMgIHxzrc
|
40
|
kXs8LBdrpkP93JM50KBFORHJvr9zmPjQ5VJdjipmqmwAI75qIBcdmlYG
|
41
|
-----END RSA PRIVATE KEY-----
|
42
|
"""
|
43
|
|
44
|
|
45
|
@pytest.fixture
|
46
|
def private_key_encrypted_pem():
|
47
|
return """
|
48
|
-----BEGIN RSA PRIVATE KEY-----
|
49
|
Proc-Type: 4,ENCRYPTED
|
50
|
DEK-Info: AES-256-CBC,3D2BFBB1BD0EB9CECF062FB4E3DFBB58
|
51
|
|
52
|
U1YtKQOBkvoqM/9ChVBtDgz7fUazZG3GK58F/p1B+vHsfk3W025Enw0bXs0k3nUL
|
53
|
gbV/6x8Xx2it2FCo31eupHTXi3UhdzrCY4sNu3fz9y4twUouMQpcbSvz8CB6xNvb
|
54
|
y74BbIDdkpHHNPCkYQ6uzuS1nvZsdgulU9ukKLr7iyiJN4bPsuOox+4LKPJkXpuB
|
55
|
zNh5gKI5qvHucq5fiMWQvQUUJSkGKkF89psGwgNlTfJLmKfJmBSZytHpcJJVReI6
|
56
|
IQNT+Lge5zfYW4cDVfX1aiYS7L19a69mPIGoRTepS1IAecD6pxTMNastaRvpvEfc
|
57
|
k1u42eYczBKQ/EMhW5DoWlRkgr0hAfpuy9akl/oCCA82JDyTyAHsooHSiPqKJ5Qh
|
58
|
4NcKEBxxJzrBl1G27BrOlhkdOpz0IQv8WBRav6+KLCgu8g6wj2qNkPmxE0G8awrw
|
59
|
h+d77hdosewXHUon9rp2rNwn+xBYnLomV/wWd1h4BJD9bjdxoKE2aWdSjMg2+Tk7
|
60
|
n4PSgusayKLjA9dgEoompdJw0WKHpEBuX6owxia/Mjp7Jah65wJZ3s2dUW3eKJ+X
|
61
|
h0lskIaNGJmTCDcJnfHP7/722S5H4zVNS5rIhRhAp/ySjhFQ7fZZU9ALYyBEwzRT
|
62
|
giviaDdZOVEpIV1XLLD3Va7eSuQU5YmbLbKzFj5eik/i5PDxbdacAfLSuxkNPfvu
|
63
|
2FvxJbnb9XfocvSobx476q7GzZXZCAQ98elpjGngYPnBGa6kk1Um7EcAwnwdVVuK
|
64
|
UDE5ifpVyWOwivtgl3Ljmv8i93gD86qyCaULamVMaNoUs1SQXnVtGlUNm56KmpKH
|
65
|
MYIoSK18unUVeo5GoROC9RuNbFGdG5QSejc+9pcbFpLXsMlFpeW2Amw06Gz/Mor8
|
66
|
UUk6MOjUHXRyLyM9JaPWYNJgbL2LIhFssURuGV0NzWQCl6TPq7i96+ZlMZxl6DNO
|
67
|
4GUC1eaUbT5OVWpbi6rf6M9FK/RvxGVWQ4Mp7lKtkzxCTJokKPa8O51OFWGsnyQt
|
68
|
E1stBq9obJQKzDE5yd0v50YEJnoeIdk8YNUZujwnM6fmUtNRytqx7qcf9QS7G9bi
|
69
|
OjPup932VHd/QxJwaq2F6bhZyAQ+TLtO7fQ5rkIX4NctJxtHipgl+yAbcYFC5hL1
|
70
|
yRCRxnXebvAQyiGYeUAH1+vnTZiaF9c44EiPLHbZ+a4hmWKtxaamZQuGaB8Ks1yr
|
71
|
oQmOg4Ixq7cAFW4vSuUjh12SYxuEoAqlW29YaeQ0y/RQV48JjmQgjvoXnworvV/m
|
72
|
h8ER2svSTW5NwDjYCqNzTC0MZehvMpv0mLxfM6QW8rwOJD6HFHSi5l4NsKr0Fx4a
|
73
|
j2LinyBMVFKWbST5Z7yHgwAQydfl3Y5z2rul/ovcy3j+euNdvMpQPc5Ww+p793Y/
|
74
|
bo7IXBu5trMI1zTr2cPJ/p+ei8E53frScoQnbxVnR/qF4puwKCa1RYbcRYIjsFyH
|
75
|
b5fAiVPUfZUsI3xw17ZLCmVX9Jq2yzLS8Kyrlvd9rLyMeEVFb4R5ho3F+uLopVrC
|
76
|
qRz7WctkmA9/SOxoF6EPaEhIyXNjjFOQbjsXVc+i0Bnw2DjY3s5SYJg6yycwdaHz
|
77
|
-----END RSA PRIVATE KEY-----
|
78
|
""", "pass"
|
79
|
|
80
|
|
81
|
@pytest.fixture
|
82
|
def certificate_pk():
|
83
|
return """
|
84
|
-----BEGIN CERTIFICATE-----
|
85
|
MIIDazCCAlOgAwIBAgIUTQwIafNfZdJmqZ+TvhtWT3dKLbMwDQYJKoZIhvcNAQEL
|
86
|
BQAwRTELMAkGA1UEBhMCQ1oxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
87
|
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTA0MTIyMjIxNTJaFw0yMTA1
|
88
|
MTIyMjIxNTJaMEUxCzAJBgNVBAYTAkNaMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
89
|
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
|
90
|
AQUAA4IBDwAwggEKAoIBAQDh/OuanZE7Vg2CxvJUSAY+W3lDHCOJULqEaxcDRNfr
|
91
|
3xd32yIv6BnwqO1qlchex2KeMN2PWuLQNFI0SQ7CfY0SihibPqrAKUW2XwNT2lqM
|
92
|
B4OnOD0JGDe+WRAJEmVbabnAfYthPZ0g2BbCirC5cXpL5NTDr5czj5d2H/1XK8ue
|
93
|
zNbHRrEd6W+P0X262ghKGebjD3mq5i92eZMjE8XranuTPtVn9G+lGjLW9MxgNC0Q
|
94
|
OX71rMDkTIEVaj6r0kIVigu8dSIL3APX5rqdOiPEPDYf9k1AZ8mh313P3Ef1/4/W
|
95
|
Fp2qqIaKfzjAdEZG3SuzQtE3XKuTevAm4Pf8jKXrScN1AgMBAAGjUzBRMB0GA1Ud
|
96
|
DgQWBBS1TwdmMBbo2YBc1NY3bre+fkJUfzAfBgNVHSMEGDAWgBS1TwdmMBbo2YBc
|
97
|
1NY3bre+fkJUfzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCv
|
98
|
684u4MRxN/h5yzxlYj4V0LfbifCLscrZIMquH7gavtmGZTSRlkVMcV+Lqt3Gr2x9
|
99
|
1DdZ6+Uvewt1nmuWvKJSCRgc67Kj1JvYeFzctYR2J/xHPGmXTm6orEW3MPSQdTvh
|
100
|
Fe1UXz7MF0HipLprIwxkH8DsGT5djSQ4jCLGnLL2h5DHW/9HY23OgAMSkpJbIo6k
|
101
|
4sx+fjOtUhxkItDN8RY2LzlENRroW2bZA3cqVH5KO1ubj5Jy+Yrd8LvD0KxW37zi
|
102
|
NyJXVOPghVAqaFbgaeBsXkL3QQYVR5wQl7delo0dn36crlckUPi+13INDhnLYgq7
|
103
|
GO9Jbty2Qeomxyf+i+SB
|
104
|
-----END CERTIFICATE-----
|
105
|
""", """
|
106
|
-----BEGIN RSA PRIVATE KEY-----
|
107
|
MIIEpAIBAAKCAQEA4fzrmp2RO1YNgsbyVEgGPlt5QxwjiVC6hGsXA0TX698Xd9si
|
108
|
L+gZ8KjtapXIXsdinjDdj1ri0DRSNEkOwn2NEooYmz6qwClFtl8DU9pajAeDpzg9
|
109
|
CRg3vlkQCRJlW2m5wH2LYT2dINgWwoqwuXF6S+TUw6+XM4+Xdh/9VyvLnszWx0ax
|
110
|
Helvj9F9utoIShnm4w95quYvdnmTIxPF62p7kz7VZ/RvpRoy1vTMYDQtEDl+9azA
|
111
|
5EyBFWo+q9JCFYoLvHUiC9wD1+a6nTojxDw2H/ZNQGfJod9dz9xH9f+P1hadqqiG
|
112
|
in84wHRGRt0rs0LRN1yrk3rwJuD3/Iyl60nDdQIDAQABAoIBADj1TFSt/hrcd49M
|
113
|
oWtIs/oniAq4HuTPKhOSAjzarylOE1YsLxOwBkm36g8BLX1l958zZcRp/dzIMyfm
|
114
|
egffKR1RHR6Tzumb/WwXynjqAgRlKHOPIyMVrYcWX4pJzq4Zma3Ads7Nfrr2e9YQ
|
115
|
qrYyucZDKLUhnpRqTpyBN5MvAKVHNlmJXCiw2bo4K4D5D/qc7++H+Uq6fxJ4Qvgg
|
116
|
+wUbPkgIFsWpi5ADaVbg1IZa4VismDGxXPQk9zBc8JEliXjPlEgT2f4dLt2JyiGA
|
117
|
MPatCCr5pUN+XKsJtAVEF1fFS1tJ6HtcrUSablq1qV2l2ucNnccugJmNUZ85U7De
|
118
|
AdmSxsECgYEA9s858JhVWR65eGQsYdYzcRaBUiGJLhblRkYZRkV0byNO41HCpc26
|
119
|
4evzmPw+e3Rb1bMj3Ip3nuK6Vqm9YB32NgBreTX3qA4Cc2KrtikesljTe539WFcy
|
120
|
mcXgnVVsYB/RGEemB1gAd41145EVH8lSy84EY3YWZ0WVmZrvkMT4bvkCgYEA6mc1
|
121
|
LRoJN4eJcPjADCBRyuCMp2LecyWAkG3zKmgWitooEV2yzs69flLHPx6pKwdssk5x
|
122
|
ukPrFmAgQQ9I0r4QDUkZxs9FhHHh7XlRutXyWsT4Gh4Y+zRSFasxrxfHDplFLwLH
|
123
|
WIZYZa4MrH4P02yUaePG0Y1qUBYJJWAxRAXay10CgYEAxCZbgOhAZGyzsIfEchkf
|
124
|
lw/wxUpb0OJnYxtQ+PU4HR+tkaIoFUfU77prRjmqmskWN1eA98SgXwkIWNnb5OjL
|
125
|
BY393D5Uzh4cOoG/wC0b9Vf887DTaQMb9vQ5mDEMybRfpHFE9W8uJ9WoTKzAYhvJ
|
126
|
jqnz+Owf0AGQbJyjKqYwX1kCgYAtENqwaSkMfAp4pdqGelA/aRyhseiCytsE6Z6u
|
127
|
sIRk/bxmWlVeXXEhMFkOUZ7EnxDO1zYWUaiJDMImwAGIQvJjG4LRLlh3Nk3xkjmc
|
128
|
ajXGLchlfRPgeBawA9Hxj+i9bcpXV3lsE6g7JFNbdoEkbOO72AcJkt61twbbILtY
|
129
|
EKgYIQKBgQC8L1pRnK/GIJztjh04leZHDubPc7yNuXu24nWzjVfqKP7Lt4cxg+3p
|
130
|
T+QipcFdlQbEPC3crNu3MW42Zal2O6X7EzEmr1HXbBeZb0+jZ9ecmKS+LrDPMj7C
|
131
|
IHZQtBxUbmbi8uNWqos/l0lhJdE9BBt5sLqfXAe+qz6g21alg1Vttg==
|
132
|
-----END RSA PRIVATE KEY-----
|
133
|
"""
|
134
|
|
135
|
|
136
|
# contains certificate, private key as well as PK passphrase
|
137
|
@pytest.fixture
|
138
|
def certificate_encrypted_pk():
|
139
|
return """
|
140
|
-----BEGIN CERTIFICATE-----
|
141
|
MIIDazCCAlOgAwIBAgIUAWW0ebo18+AtvjzxLvIPEa4lIUkwDQYJKoZIhvcNAQEL
|
142
|
BQAwRTELMAkGA1UEBhMCcGExEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
143
|
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTA0MTIyMjMxMDRaFw0yMTA1
|
144
|
MTIyMjMxMDRaMEUxCzAJBgNVBAYTAnBhMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
145
|
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
|
146
|
AQUAA4IBDwAwggEKAoIBAQDRPcW6WGeMSvsW+p2xeuKXG5gfzf7b7i2r5hcac222
|
147
|
hTxwV5nkwnCID/7rDG0JrnL0XoMwCtXKD8Noa6lAnxXs+1ENjdIbpufAIUYHkuBg
|
148
|
jbqCRBs32ue87Tr6lK9DPgjbrs5f6/r08fJ2ZMX+g92Lq0bgn/Dej6+gtIN31n1M
|
149
|
o72W3NpfrRl+PWMlwrTXzDM6tu3PLtK/8TCmrUrg2WgoTbUsRTFy9oUG5xm+qFfQ
|
150
|
c+6o9gYk+5jO3FI7UP4z7C9n+5O6p25CYblTaENdJb/wjHLeLnY9f1iRkGZT4Lel
|
151
|
6iQEC4iuiBvKL46txYl2r4hbNO5U7hDQ11nWp47GZJ8fAgMBAAGjUzBRMB0GA1Ud
|
152
|
DgQWBBSCbDHOKEnOU27evnxYKxyF/gQzBTAfBgNVHSMEGDAWgBSCbDHOKEnOU27e
|
153
|
vnxYKxyF/gQzBTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAe
|
154
|
z8xDdKj/hmIozRxiOFEjjBW9HFQicmisD/lHH3XWQtW3coNXqa/6UOXor6JNCmYB
|
155
|
MKV/N4BAHve/rRkMZ7ohInsanMBsR5Nl2lrYMYWcMNJ8vZm1FbeEqxL/VxQLWwlH
|
156
|
Q2seDbNkrGPuCJzVPskqzV0x373IYKC1faTLpdPd7DChkKmUv1SWoYo3yQ+G4tUb
|
157
|
IeHGOq+4gEYzF0YsGu2QaAPR3hRMcRtc7LDtuy+eRz4BqvRm3jF3W26Ha8cSojs7
|
158
|
c2xJmcA3t2cFCHYKXDmlBJJ5Kvkuak9U+TZLl7+Y7+SmyJIv9nRN2THwDKpaRtff
|
159
|
94wl65n2IoG1YP4XyjyX
|
160
|
-----END CERTIFICATE-----
|
161
|
""", """
|
162
|
-----BEGIN RSA PRIVATE KEY-----
|
163
|
Proc-Type: 4,ENCRYPTED
|
164
|
DEK-Info: AES-256-CBC,CC2F8ACBF28E244F2DCD4239D38EE3A5
|
165
|
|
166
|
75uLZWsoCKfzOlp//IbWVkISUsrG2MqrJi8JIRKWeR63jGCuskju87U+LoPP7EZ+
|
167
|
xBm9uP0voayUIXPnGOJS/1veUfV8477RGhqK0/pM/MLWcYnggeoBu7EIzUVi80tQ
|
168
|
chC1DJxB+mi1DG3lytyzvuDq8AsQ7iK7VWmST9pJHDgw9K19zBLRtPjZLYs09A0e
|
169
|
PJE74IgZySOctZxwidmdwYDysGaMK35nxP6tPUngQjuA2TdDQxOKBTG17g4drqcJ
|
170
|
ddJFpw3HKiSRyHtl8DQoQwHXvgSFNz/dAnXRRAA+8ogyCyzcroekBGqaMJWpJMNp
|
171
|
sbJgochbFZ+ayAQuQQGxDQHkzpTlYP4HCeDW7hR79HUWLziPXCjoE5PcEz/z/Be1
|
172
|
dxYzK3zArFSHthvhKWNhwsFhCmseAlR8jtOBOncAG4F1wkkwIGjfrWFTUmvBBS+m
|
173
|
KbUzDM2H4caUnG8gWiGht/EZU6M4fEuFy6Ms8ZXUZLnz3k4wfw5KKIGgdZ4BsVt0
|
174
|
zTLkrvuy/wCRo6j5EQT7fBr2RAhakIBOOmXBD5ZukJljvP2EF8z33AgeOO2CE1Uw
|
175
|
fq460dOHuk7A89pGfYHmy9KVpL2q70xswYbv+2yjaDOhRRHoNNGtIK9b+aTo0dxD
|
176
|
ixHgrxQeJnkwpLBhuax0pMzL1vbG0jujlApVRUodUo2xkZjwjgwp95Ss4RJr124U
|
177
|
pLjQJ+9V1BUl1i0VqrC8IyABQH2hpPXk/yxGsAZ2xOXCsGKd1IT997SroA8vnJBf
|
178
|
umGVl88GowzSVRdVwZozb5JGyh/pV+haNgHM8NBwZEqD8kB+4038l3dwtr115Ogi
|
179
|
8zRqUgvcBXTaXOJ04qpZmnhILFTu36Z5OtE1VRT+7e/9viAsvTzrGpoVd8rPSima
|
180
|
Vxus94+yDgakkXpF7nyoP/r0PVZNpcB2Iq1c8jqln6YL+9uxGnkAcCWerYx75lpv
|
181
|
TSXCw9IS07f3ggiJ77d3IleEFA5ohCKoAZndxmRS+M1/EsZn4ShsN71CCY3UTofV
|
182
|
T4Gadwk5nKKVDF2BP7nVOu4KBN0ws9ENweZjFVbr/uRghbt2fxQlFCcMSR+huTcU
|
183
|
p2JNCXNhhqCtswjr2nt1Ti/LyFwxSrJqTw1HNIeTHYHp/YPfGCq8O3gBT4DOxQ5D
|
184
|
0vg7+yNV4tmfgKxjA+MgHBFo1SffRKYtMy9ILZyo2yb+AyjZWfl6ab0tyhK517jD
|
185
|
YSClJgqlzYCe1sWU/Vot0/GrPn4jI/0o2cIXOXRf2LH8JEkXC8qxxWl3gLzTmznG
|
186
|
s+r8D6UAmo6cCXaB4bquRooIi1BT1bINOixASa6BF/58VXnnpE8ItqIp4o2gb4Nq
|
187
|
TD+620Jn9JZOdaq5heDObfg6wIH8PS/1VDdcFflayX9YxdMDJ4RGG6CRLWplJWT/
|
188
|
Q7Kex+qupynM4gwXfpg9AuM3uAaIlUYU45zgTC9cF+vBWFtao0tZCmjJEXaik9L/
|
189
|
H1WudWhZjp6RflnLKTcLvYslutwUb4q23mPUim03H/7YZ5tPLDWgSHiOk4phHVPG
|
190
|
pIeQ6WxVbfVqyCBrTAsKUvkfs+rGvyM0iXgPw5As7M2nRE3emwpw8PskqLUnTMyK
|
191
|
-----END RSA PRIVATE KEY-----
|
192
|
""", "pass"
|