Skip to content

Commit 6d87060

Browse files
authored
Merge pull request #834 from jettero/4.0-sign-script
4.0 sign script
2 parents 79c9798 + 6b2a336 commit 6d87060

35 files changed

+284
-7
lines changed

contrib/sign-profiles.sh

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
#
3+
# This is an example of a way to quickly sign a repo without accidentally
4+
# signing all the wrong things. If everything goes well, it should
5+
# (re)generate a MANIFEST and SIGNATURE file.
6+
#
7+
# USAGE: bash contrib/sign-profiles.sh repo private-key
8+
#
9+
# e.g., bash contrib/sign-profiles.sh ~/code/hubblestack_data.git_repo ~/secerts/hubble/private.key
10+
#
11+
12+
PROFILE="$1"; shift
13+
PRIVATE_KEY="${1:-/etc/certs/private.key}"; shift
14+
OK=0
15+
16+
HUBBLE="${HUBBLE:-hubble}"
17+
18+
if [ -n "$PROFILE" -a -d "$PROFILE/hubblestack_pulsar" -a -d "$PROFILE/hubblestack_nova_profiles" ]
19+
then cd "$PROFILE" || exit 1; OK=1
20+
else read -ep "$PROFILE=\"$PROFILE\" doesn't look like profile repo, sign anyway? " YN
21+
if [[ "$YN" =~ [Yy] ]]
22+
then cd "$PROFILE" || exit 1; OK=1
23+
fi
24+
fi
25+
26+
if [ "X$OK" = X1 ]
27+
then readarray -t FILEZ < <( find ./ -name .git -prune -o \( -type f -print \) \
28+
| grep -vE '^(MANIFEST|SIGNATURE)$' )
29+
( set -x -e;
30+
cd "$PROFILE"
31+
"$HUBBLE" -vvv signing.msign "${FILEZ[@]}" private_key="$PRIVATE_KEY"
32+
)
33+
else "usage: $(basename "$0") profile-dir"
34+
fi

hubblestack/utils/signing.py

+11-6
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@
6464
MANIFEST_RE = re.compile(r'^\s*(?P<digest>[0-9a-fA-F]+)\s+(?P<fname>.+)$')
6565
log = logging.getLogger(__name__)
6666

67-
# "verification_log_timestamps" is a global dict that contains str path
68-
# and time() kv pairs. When the time() value exceeds the dampening_limit (3600 sec),
67+
# "verification_log_timestamps" is a global dict that contains str path
68+
# and time() kv pairs. When the time() value exceeds the dampening_limit (3600 sec),
6969
# we reset time and set log level accordingly.
7070
verif_log_timestamps = {}
7171
# How often in seconds 3600 = 1 hour to set log level to log.error/critical
@@ -332,7 +332,7 @@ def __init__(self, public_crt=None, ca_crt=None):
332332
except ossl.X509StoreContextError as exception_object:
333333
code, depth, message = exception_object.args[0]
334334
if code in (2,3,20,27,33):
335-
# from openssl/x509_vfy.h or
335+
# from openssl/x509_vfy.h or
336336
# https://www.openssl.org/docs/man1.1.0/man3/X509_STORE_CTX_set_current_cert.html
337337
# X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2
338338
# X509_V_ERR_UNABLE_TO_GET_CRL 3
@@ -444,7 +444,12 @@ def sign_target(fname, ofname, private_key='private.key', **kwargs): # pylint: d
444444
"""
445445
# NOTE: This is intended to crash if there's some number of keys other than
446446
# exactly 1 read from the private_key file:
447-
first_key, = read_certs(private_key)
447+
the_keys = list(read_certs(private_key))
448+
if not the_keys:
449+
log.error('unable to sign %s with %s (no such file or error reading certs)',
450+
os.path.abspath(fname), os.path.abspath(private_key))
451+
return
452+
first_key = the_keys[0]
448453
hasher, chosen_hash = hash_target(fname, obj_mode=True)
449454
args = { 'data': hasher.finalize() }
450455
if isinstance(first_key, rsa.RSAPrivateKey):
@@ -458,7 +463,7 @@ def sign_target(fname, ofname, private_key='private.key', **kwargs): # pylint: d
458463
fh.write('\n')
459464

460465
def verify_signature(fname, sfname, public_crt='public.crt', ca_crt='ca-root.crt', **kwargs): # pylint: disable=unused-argument
461-
### make
466+
### make
462467
"""
463468
Given the fname, sfname public_crt and ca_crt:
464469
@@ -601,7 +606,7 @@ def verify_files(targets, mfname='MANIFEST', sfname='SIGNATURE', public_crt='pub
601606
# or it's a digest from the MANIFEST. If UNKNOWN, we have nothing to compare
602607
# so we return UNKNOWN
603608
status = STATUS.UNKNOWN
604-
# check to see if the the status of a failed target has been sent is the last
609+
# check to see if the the status of a failed target has been sent is the last
605610
# x seconds, we reset time and set log level accordingly. the same for FAIL
606611
elif digest == new_hash:
607612
# path gets same status as MANIFEST
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB9jCCAaigAwIBAgIURP1Q7LP4Qo+9UrjZaC7MZ3+3Kk4wBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTI1MVoXDTI5MDkyODIxMTkzMVowZzELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJpYTEuaHViYmxlc3RhY2suaW8wKjAF
8+
BgMrZXADIQABTL/rpAHbd9QEtKBMMvcY0spy4F8iZUqQjZSO21kPQKNmMGQwHwYD
9+
VR0jBBgwFoAUwh+cpSrbXdPickBjcmYbPZKzYQEwHQYDVR0OBBYEFAWou/d/qAoA
10+
35JdNjBy0vs/XLpDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE
11+
MAUGAytlcANBAMghSFrbu7v8vC3LCueAsNA6FKHG/iabBonx2F2Nxe4KPRmPeEuB
12+
d3SK3J6wlDB+b6LdR/6x0tHnmHhbzoMA2A0=
13+
-----END CERTIFICATE-----
14+
-----BEGIN CERTIFICATE-----
15+
MIIB9jCCAaigAwIBAgIUEVkmZe7+qF/MWSy0fjY9fhz1F7gwBQYDK2VwMGcxCzAJ
16+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
17+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
18+
LmlvMB4XDTIwMDMyNjEyMTI1MVoXDTI5MDkyODIxMTkzMVowZzELMAkGA1UEBhMC
19+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
20+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJpYTIuaHViYmxlc3RhY2suaW8wKjAF
21+
BgMrZXADIQBar2Y3JhOwLHRnx6JEF8BurvOstJxruxdT0V19/sCJlqNmMGQwHwYD
22+
VR0jBBgwFoAUwh+cpSrbXdPickBjcmYbPZKzYQEwHQYDVR0OBBYEFO0EfJdSS+Ps
23+
gbKLHoTevNaXRDvqMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE
24+
MAUGAytlcANBANC+xnNTb/FzmmF72sU5o8tXWxRF7l5N1AHWiedape/R+9WpOw3s
25+
sCb3Gb6zAJctLBuc273b9CpnMie21rdedAk=
26+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB9jCCAaigAwIBAgIUYQnnc1vQ8bOnFIp9YyUIYmfy+zEwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTI1MVoXDTI5MDkyODIxMTkzMVowZzELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJjYXIuaHViYmxlc3RhY2suaW8wKjAF
8+
BgMrZXADIQBgpHW4S2JwT4NFJfQiXpskpNL21NTEtAevNgnOSix9WKNmMGQwHwYD
9+
VR0jBBgwFoAUwh+cpSrbXdPickBjcmYbPZKzYQEwHQYDVR0OBBYEFMIfnKUq213T
10+
4nJAY3JmGz2Ss2EBMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgKE
11+
MAUGAytlcANBAPNql/7hj5p4q/EU5jwDrDCHTw3cNCs0e3XlLbUCn4l0DwA91XFG
12+
Gl/Zd34JC6Z1cuEIts/OgdLC+8on1HxiIQY=
13+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEICu+jXD6S4pTFdvurQE7kwdyvizCly6iFEyXab2US/CV
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAYKR1uEticE+DRSX0Il6bJKTS9tTUxLQHrzYJzkosfVg=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB9jCCAaigAwIBAgIURP1Q7LP4Qo+9UrjZaC7MZ3+3Kk4wBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTI1MVoXDTI5MDkyODIxMTkzMVowZzELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJpYTEuaHViYmxlc3RhY2suaW8wKjAF
8+
BgMrZXADIQABTL/rpAHbd9QEtKBMMvcY0spy4F8iZUqQjZSO21kPQKNmMGQwHwYD
9+
VR0jBBgwFoAUwh+cpSrbXdPickBjcmYbPZKzYQEwHQYDVR0OBBYEFAWou/d/qAoA
10+
35JdNjBy0vs/XLpDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE
11+
MAUGAytlcANBAMghSFrbu7v8vC3LCueAsNA6FKHG/iabBonx2F2Nxe4KPRmPeEuB
12+
d3SK3J6wlDB+b6LdR/6x0tHnmHhbzoMA2A0=
13+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIMRBmpqQq+cvn49ogZ37LKh7DdRSEi/XGNnUUlCbShu3
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAAUy/66QB23fUBLSgTDL3GNLKcuBfImVKkI2UjttZD0A=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB9jCCAaigAwIBAgIUEVkmZe7+qF/MWSy0fjY9fhz1F7gwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTI1MVoXDTI5MDkyODIxMTkzMVowZzELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJpYTIuaHViYmxlc3RhY2suaW8wKjAF
8+
BgMrZXADIQBar2Y3JhOwLHRnx6JEF8BurvOstJxruxdT0V19/sCJlqNmMGQwHwYD
9+
VR0jBBgwFoAUwh+cpSrbXdPickBjcmYbPZKzYQEwHQYDVR0OBBYEFO0EfJdSS+Ps
10+
gbKLHoTevNaXRDvqMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE
11+
MAUGAytlcANBANC+xnNTb/FzmmF72sU5o8tXWxRF7l5N1AHWiedape/R+9WpOw3s
12+
sCb3Gb6zAJctLBuc273b9CpnMie21rdedAk=
13+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIOs6OveTE8Fdrvh4ocwCi+TGNfKl2VJimpkeVQOVnDgv
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAWq9mNyYTsCx0Z8eiRBfAbq7zrLSca7sXU9Fdff7AiZY=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIAji7b3QFAh6pUyeEIYyM6Rsx0Hr05sW/3r3sThQDOtu
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIEme51xRg+REgjHggZK3ZAtTgY79h/lVaWJZv5mnWKI5
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIBvDCCAW6gAwIBAgIUeeEV84IFklBe2P9b9MW3H58jquIwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSaWExLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTI1MVoXDTI5MDkyODIxMTkzMVowYjELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRYwFAYDVQQDDA1DZXJ0eSBDZXJ0ICMxMCowBQYDK2Vw
8+
AyEAlKtBaJbjp/BRnwUQOI5mdQjs0p67DSOvLTTc6ME0SEejMTAvMB0GA1UdDgQW
9+
BBQuB1K9WgtwLgp4yf0WkkaJHxBFozAOBgNVHQ8BAf8EBAMCBNAwBQYDK2VwA0EA
10+
81XVAB1H+YR97WKDTJP9F9G6adNKXIUPrtP3bbicvcdqQzUmt5IeL9lSmEGNS71+
11+
ECR5em+YaNuo5lV5a37VAw==
12+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAlKtBaJbjp/BRnwUQOI5mdQjs0p67DSOvLTTc6ME0SEc=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIBvDCCAW6gAwIBAgIUSAEU4IAxsq5ztBYozISrqdZh/ScwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSaWEyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTI1MVoXDTI5MDkyODIxMTkzMVowYjELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRYwFAYDVQQDDA1DZXJ0eSBDZXJ0ICMyMCowBQYDK2Vw
8+
AyEAZS9aEe2LSTxoDHYCPEOUHrKfI219xwPLiMnjCOriORmjMTAvMB0GA1UdDgQW
9+
BBR3npasA5ENT1Lbajz8FgFvyVVzGTAOBgNVHQ8BAf8EBAMCBNAwBQYDK2VwA0EA
10+
f2dQvR76RkpcqkiPWEb1iA90LRhXcl1gQA7I0Ge+vl3N5BV/NEpNTXP2NAbav0gU
11+
H4I9ut52JMEZearzxsOYAA==
12+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAZS9aEe2LSTxoDHYCPEOUHrKfI219xwPLiMnjCOriORk=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB9jCCAaigAwIBAgIUEz1V2rlGuv8mtI9+Q6zDvkcj4YUwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTYzOVoXDTI5MDkyODIxMjMxOVowZzELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJpYTEuaHViYmxlc3RhY2suaW8wKjAF
8+
BgMrZXADIQDh3XVqPyhKRS2GHm/Cyjwjdm++Gb3rMH7YAVyILsxh+qNmMGQwHwYD
9+
VR0jBBgwFoAU70BlpEMzzHX1zQkrE5/7W7dbZDEwHQYDVR0OBBYEFArfAfKz3mNH
10+
KiijWTpVinclIHmDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE
11+
MAUGAytlcANBAJfe/tlbTv0u9ASdAgruMTHERE+27KH8xHrnL27WgNn72efaIr8x
12+
SOOv8gUQcd7YhhKTMrLd8wK/TtMPAzii/QQ=
13+
-----END CERTIFICATE-----
14+
-----BEGIN CERTIFICATE-----
15+
MIIB9jCCAaigAwIBAgIUEfbZpUm0hSle3fVK9by4IVFvFPgwBQYDK2VwMGcxCzAJ
16+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
17+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
18+
LmlvMB4XDTIwMDMyNjEyMTYzOVoXDTI5MDkyODIxMjMxOVowZzELMAkGA1UEBhMC
19+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
20+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJpYTIuaHViYmxlc3RhY2suaW8wKjAF
21+
BgMrZXADIQC1E4Wy4XhAK2GDgSnyc631gFfscCIXbpCXTs1OGH0vPqNmMGQwHwYD
22+
VR0jBBgwFoAU70BlpEMzzHX1zQkrE5/7W7dbZDEwHQYDVR0OBBYEFG0Sdd1M/mVs
23+
qOmIoXgjxCGZN1b7MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE
24+
MAUGAytlcANBAP9aH8KLQUOQx2xNvMAuaMTS4YmmZ5Xy/7USyHZz5JkM+X9IO5jr
25+
WUposEepJUTs1YibR6hOcWCNGEFfftOxvQw=
26+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB9jCCAaigAwIBAgIUIch7nU0JT4IHdVBQ2Tfs7xJ2MxEwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTYzOVoXDTI5MDkyODIxMjMxOVowZzELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJjYXIuaHViYmxlc3RhY2suaW8wKjAF
8+
BgMrZXADIQCvc420Dkp+pRfCnrrcpdTn3q+BZvRHbeJ0P11n+emIDqNmMGQwHwYD
9+
VR0jBBgwFoAU70BlpEMzzHX1zQkrE5/7W7dbZDEwHQYDVR0OBBYEFO9AZaRDM8x1
10+
9c0JKxOf+1u3W2QxMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgKE
11+
MAUGAytlcANBAFxkSVGJ5rnkYMXeR4IHJZIWvxJwQ8Grnv9aFJnaSf7JHzLE+U1o
12+
mE9zoI6wB1jv2Kj/EJ7nRrlYUctHFZJKKQA=
13+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIMM+rVDrYR9R2bJ7mhUg5g/Tba262FkTiLIzsYkcMPsO
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAr3ONtA5KfqUXwp663KXU596vgWb0R23idD9dZ/npiA4=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB9jCCAaigAwIBAgIUEz1V2rlGuv8mtI9+Q6zDvkcj4YUwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTYzOVoXDTI5MDkyODIxMjMxOVowZzELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJpYTEuaHViYmxlc3RhY2suaW8wKjAF
8+
BgMrZXADIQDh3XVqPyhKRS2GHm/Cyjwjdm++Gb3rMH7YAVyILsxh+qNmMGQwHwYD
9+
VR0jBBgwFoAU70BlpEMzzHX1zQkrE5/7W7dbZDEwHQYDVR0OBBYEFArfAfKz3mNH
10+
KiijWTpVinclIHmDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE
11+
MAUGAytlcANBAJfe/tlbTv0u9ASdAgruMTHERE+27KH8xHrnL27WgNn72efaIr8x
12+
SOOv8gUQcd7YhhKTMrLd8wK/TtMPAzii/QQ=
13+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEINXj6ru0z9jMc1HUN8WDUJ7cYjZgZzGvirfUrvUFr2nI
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEA4d11aj8oSkUthh5vwso8I3Zvvhm96zB+2AFciC7MYfo=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIB9jCCAaigAwIBAgIUEfbZpUm0hSle3fVK9by4IVFvFPgwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSY2FyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTYzOVoXDTI5MDkyODIxMjMxOVowZzELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRswGQYDVQQDDBJpYTIuaHViYmxlc3RhY2suaW8wKjAF
8+
BgMrZXADIQC1E4Wy4XhAK2GDgSnyc631gFfscCIXbpCXTs1OGH0vPqNmMGQwHwYD
9+
VR0jBBgwFoAU70BlpEMzzHX1zQkrE5/7W7dbZDEwHQYDVR0OBBYEFG0Sdd1M/mVs
10+
qOmIoXgjxCGZN1b7MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgKE
11+
MAUGAytlcANBAP9aH8KLQUOQx2xNvMAuaMTS4YmmZ5Xy/7USyHZz5JkM+X9IO5jr
12+
WUposEepJUTs1YibR6hOcWCNGEFfftOxvQw=
13+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIKXRUbHRQUVF48B2wlCOHjelThkcPruy5epXA2pNlq0t
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAtROFsuF4QCthg4Ep8nOt9YBX7HAiF26Ql07NThh9Lz4=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIPIOwibDqHRHS1Kx4BcXFlTRpJ+/8HyZMo0Hx8trjVBY
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MC4CAQAwBQYDK2VwBCIEIE99TwlMJDDNn572tYBUAv4/nGXwSPtTGU093S5osPMX
3+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIBvDCCAW6gAwIBAgIUCDTqBhZsLUWtHQjbLyILlAdvfUEwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSaWExLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTYzOVoXDTI5MDkyODIxMjMxOVowYjELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRYwFAYDVQQDDA1DZXJ0eSBDZXJ0ICMxMCowBQYDK2Vw
8+
AyEAg1cHTOOL8/+t5H7euuJf07YIarYaA9v3BjA0+IOzIHKjMTAvMB0GA1UdDgQW
9+
BBTQUAqDvt19JA6tNFDLEDzO/wAn6TAOBgNVHQ8BAf8EBAMCBNAwBQYDK2VwA0EA
10+
Zx5xoCyRwISf41f8XRTyg5Tj1aoul4oIsuMMPWLNDlT+Iwjrs+3ul3iwDck3S13U
11+
nUMbhbFSvqTAhZrklJtxBg==
12+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAg1cHTOOL8/+t5H7euuJf07YIarYaA9v3BjA0+IOzIHI=
3+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIBvDCCAW6gAwIBAgIUBigc9ZKWD3q5vb1BvarBaFQ3LAwwBQYDK2VwMGcxCzAJ
3+
BgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEMMAoGA1UE
4+
CgwDT3JnMQ4wDAYDVQQLDAVHcm91cDEbMBkGA1UEAwwSaWEyLmh1YmJsZXN0YWNr
5+
LmlvMB4XDTIwMDMyNjEyMTYzOVoXDTI5MDkyODIxMjMxOVowYjELMAkGA1UEBhMC
6+
VVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcx
7+
DjAMBgNVBAsMBUdyb3VwMRYwFAYDVQQDDA1DZXJ0eSBDZXJ0ICMyMCowBQYDK2Vw
8+
AyEAY7TB/7GfoCtmiOoadzgA7HyBZqpXUiTqSY8vg2M7MESjMTAvMB0GA1UdDgQW
9+
BBTNPTbSi9fWX281N/ABT1M9WI6XpDAOBgNVHQ8BAf8EBAMCBNAwBQYDK2VwA0EA
10+
AuXUU8r8+YSyeuKt7smE4ZO8L/gdj+m9nAQEKPj7wGmAtITKGMTeZKbH5dfAVKfH
11+
+PdHZM+tVPFspBXlfVL2Aw==
12+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MCowBQYDK2VwAyEAY7TB/7GfoCtmiOoadzgA7HyBZqpXUiTqSY8vg2M7MEQ=
3+
-----END PUBLIC KEY-----

tests/unittests/test_repo_signing.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from pytest import fixture
66
import hubblestack.utils.signing as sig
77

8-
@fixture(scope='module', params=['rsa', '448'])
8+
@fixture(scope='module', params=['rsa', '448', '25519'])
99
def cdbt(request):
1010
yield request.param
1111

0 commit comments

Comments
 (0)