Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
re6stnet
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
zhifan huang
re6stnet
Commits
4a740337
Commit
4a740337
authored
Sep 10, 2012
by
Julien Muchembled
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
demo: generate missing certs automatically
parent
b1b5ec77
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
51 additions
and
224 deletions
+51
-224
demo/demo
demo/demo
+51
-27
demo/m1/re6stnet.conf
demo/m1/re6stnet.conf
+0
-1
demo/m2/re6stnet.conf
demo/m2/re6stnet.conf
+0
-1
demo/m3/re6stnet.conf
demo/m3/re6stnet.conf
+0
-1
demo/m4/re6stnet.conf
demo/m4/re6stnet.conf
+0
-1
demo/m6/re6stnet.conf
demo/m6/re6stnet.conf
+0
-1
demo/m7/re6stnet.conf
demo/m7/re6stnet.conf
+0
-1
demo/registry/re6st-registry.conf
demo/registry/re6st-registry.conf
+0
-1
demo/registry/re6stnet.conf
demo/registry/re6stnet.conf
+0
-1
demo/registry/registry.sql
demo/registry/registry.sql
+0
-189
No files found.
demo/demo
View file @
4a740337
...
@@ -4,6 +4,7 @@ from collections import defaultdict
...
@@ -4,6 +4,7 @@ from collections import defaultdict
IPTABLES = 'iptables'
IPTABLES = 'iptables'
SCREEN = 'screen'
SCREEN = 'screen'
VERBOSE = 4
VERBOSE = 4
REGISTRY='10.0.0.2'
# registry
# registry
# |.2
# |.2
...
@@ -20,19 +21,6 @@ VERBOSE = 4
...
@@ -20,19 +21,6 @@ VERBOSE = 4
# m1 m2 m3 m4 m5
# m1 m2 m3 m4 m5
#
#
registry = 'registry/registry.db'
if not os.path.exists(registry):
import sqlite3
sql = open('registry/registry.sql').read()
db = sqlite3.connect(registry)
db.executescript(sql)
for prefix, cert in db.execute("SELECT prefix, cert FROM cert"
" WHERE cert IS NOT NULL"):
i = int(prefix, 2)
with open(("m%u" % i if i else "registry") + "/cert.crt", 'w') as f:
f.write(cert)
db.close()
def disable_signal_on_children(sig):
def disable_signal_on_children(sig):
pid = os.getpid()
pid = os.getpid()
sigint = signal.signal(sig, lambda *x: os.getpid() == pid and sigint(*x))
sigint = signal.signal(sig, lambda *x: os.getpid() == pid and sigint(*x))
...
@@ -102,7 +90,7 @@ re_if_0.up = in_if_0.up = in_if_1.up = g1_if_0.up = in_if_2.up = g2_if_0.up = Tr
...
@@ -102,7 +90,7 @@ re_if_0.up = in_if_0.up = in_if_1.up = g1_if_0.up = in_if_2.up = g2_if_0.up = Tr
in_if_3.up = g1_if_1.up = g2_if_1.up = m1_if_0.up = m2_if_0.up = m3_if_0.up = m4_if_0.up = m5_if_0.up = m6_if_0.up = m7_if_0.up = m8_if_0.up = True
in_if_3.up = g1_if_1.up = g2_if_1.up = m1_if_0.up = m2_if_0.up = m3_if_0.up = m4_if_0.up = m5_if_0.up = m6_if_0.up = m7_if_0.up = m8_if_0.up = True
# Add IPv4 addresses
# Add IPv4 addresses
re_if_0.add_v4_address(address=
'10.0.0.2'
, prefix_len=24)
re_if_0.add_v4_address(address=
REGISTRY
, prefix_len=24)
in_if_0.add_v4_address(address='10.0.0.1', prefix_len=24)
in_if_0.add_v4_address(address='10.0.0.1', prefix_len=24)
in_if_1.add_v4_address(address='10.1.0.1', prefix_len=24)
in_if_1.add_v4_address(address='10.1.0.1', prefix_len=24)
in_if_2.add_v4_address(address='10.2.0.1', prefix_len=24)
in_if_2.add_v4_address(address='10.2.0.1', prefix_len=24)
...
@@ -143,23 +131,59 @@ for ip in '10.1.1.2', '10.1.1.3', '10.2.1.2', '10.2.1.3':
...
@@ -143,23 +131,59 @@ for ip in '10.1.1.2', '10.1.1.3', '10.2.1.2', '10.2.1.3':
else:
else:
print "Connectivity IPv4 OK!"
print "Connectivity IPv4 OK!"
nodes = []
gateway1.screen('miniupnpd -d -f miniupnpd.conf -P miniupnpd.pid -a 10.1.1.1'
gateway1.screen('miniupnpd -d -f miniupnpd.conf -P miniupnpd.pid -a 10.1.1.1'
' -i %s' % g1_if_0_name)
' -i %s' % g1_if_0_name)
if 1:
if 1:
registry.screen('../re6stnet @registry/re6stnet.conf --ip 10.0.0.2 -v%u' % VERBOSE,
import sqlite3
'../re6st-registry @registry/re6st-registry.conf -v%u'
db_path = 'registry/registry.db'
' --mailhost %s' % (VERBOSE, os.path.abspath('mbox')))
registry.screen('../re6st-registry @registry/re6st-registry.conf --db %s'
machine1.screen('../re6stnet @m1/re6stnet.conf -v%u -I%s' % (VERBOSE, m1_if_0.name))
' --mailhost %s -v%u' % (db_path, os.path.abspath('mbox'), VERBOSE))
machine2.screen('../re6stnet @m2/re6stnet.conf -v%u' % VERBOSE)
registry_url = 'http://%s/' % REGISTRY
machine3.screen('../re6stnet @m3/re6stnet.conf -v%u -i%s' % (VERBOSE, m3_if_0.name))
registry.Popen(('python', '-c', """if 1:
machine4.screen('../re6stnet @m4/re6stnet.conf -v%u -i%s' % (VERBOSE, m4_if_0.name))
import socket, time
machine5.screen('../re6stnet @m5/re6stnet.conf -v%u -i%s' % (VERBOSE, m5_if_0.name))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
machine6.screen('../re6stnet @m6/re6stnet.conf -v%u' % VERBOSE)
while True:
machine7.screen('../re6stnet @m7/re6stnet.conf -v%u' % VERBOSE)
try:
machine8.screen('../re6stnet @m8/re6stnet.conf -v%u' % VERBOSE)
s.connect(('localhost', 80))
break
except socket.error:
time.sleep(.1)
""")).wait()
db = sqlite3.connect(db_path, isolation_level=None)
def re6stnet(node, folder, args='', prefix_len=None, registry=registry_url):
nodes.append(node)
if not os.path.exists(folder + '/cert.crt'):
dh_path = folder + '/dh2048.pem'
if not os.path.exists(dh_path):
os.symlink('../dh2048.pem', dh_path)
email = node.name + '@example.com'
p = node.Popen(('../../re6st-conf', '--registry', registry,
'--email', email), stdin=subprocess.PIPE, cwd=folder)
token = None
while not token:
time.sleep(.1)
token = db.execute("SELECT token FROM token WHERE email=?",
(email,)).fetchone()
if prefix_len:
db.execute("UPDATE token SET prefix_len=? WHERE token=?",
(prefix_len, token[0]))
p.communicate(str(token[0]))
os.remove(dh_path)
os.remove(folder + '/ca.crt')
node.screen('../re6stnet @%s/re6stnet.conf -v%u --registry %s %s'
% (folder, VERBOSE, registry, args))
re6stnet(registry, 'registry', '--ip ' + REGISTRY, registry='http://localhost/')
re6stnet(machine1, 'm1', '-I%s' % m1_if_0.name)
re6stnet(machine2, 'm2')
re6stnet(machine3, 'm3', '-i%s' % m3_if_0.name)
re6stnet(machine4, 'm4', '-i%s' % m4_if_0.name)
re6stnet(machine5, 'm5', '-i%s' % m5_if_0.name)
re6stnet(machine6, 'm6')
re6stnet(machine7, 'm7')
re6stnet(machine8, 'm8')
db.close()
nodes = registry, machine1, machine2, machine3, machine4, \
machine5, machine6, machine7, machine8
_ll = {}
_ll = {}
def node_by_ll(addr):
def node_by_ll(addr):
try:
try:
...
...
demo/m1/re6stnet.conf
View file @
4a740337
...
@@ -9,4 +9,3 @@ cert m1/cert.crt
...
@@ -9,4 +9,3 @@ cert m1/cert.crt
key
m1
/
cert
.
key
key
m1
/
cert
.
key
client
-
count
2
client
-
count
2
tunnel
-
refresh
100
tunnel
-
refresh
100
registry
http
://
10
.
0
.
0
.
2
:
80
demo/m2/re6stnet.conf
View file @
4a740337
...
@@ -9,4 +9,3 @@ cert m2/cert.crt
...
@@ -9,4 +9,3 @@ cert m2/cert.crt
key
m2
/
cert
.
key
key
m2
/
cert
.
key
client
-
count
2
client
-
count
2
tunnel
-
refresh
100
tunnel
-
refresh
100
registry
http
://
10
.
0
.
0
.
2
:
80
demo/m3/re6stnet.conf
View file @
4a740337
...
@@ -9,4 +9,3 @@ cert m3/cert.crt
...
@@ -9,4 +9,3 @@ cert m3/cert.crt
key
m3
/
cert
.
key
key
m3
/
cert
.
key
client
-
count
2
client
-
count
2
tunnel
-
refresh
100
tunnel
-
refresh
100
registry
http
://
10
.
0
.
0
.
2
:
80
demo/m4/re6stnet.conf
View file @
4a740337
...
@@ -9,4 +9,3 @@ cert m4/cert.crt
...
@@ -9,4 +9,3 @@ cert m4/cert.crt
key
m4
/
cert
.
key
key
m4
/
cert
.
key
client
-
count
2
client
-
count
2
tunnel
-
refresh
100
tunnel
-
refresh
100
registry
http
://
10
.
0
.
0
.
2
:
80
demo/m6/re6stnet.conf
View file @
4a740337
...
@@ -9,4 +9,3 @@ cert m6/cert.crt
...
@@ -9,4 +9,3 @@ cert m6/cert.crt
key
m6
/
cert
.
key
key
m6
/
cert
.
key
client
-
count
2
client
-
count
2
tunnel
-
refresh
100
tunnel
-
refresh
100
registry
http
://
10
.
0
.
0
.
2
:
80
demo/m7/re6stnet.conf
View file @
4a740337
...
@@ -9,4 +9,3 @@ cert m7/cert.crt
...
@@ -9,4 +9,3 @@ cert m7/cert.crt
key
m7
/
cert
.
key
key
m7
/
cert
.
key
client
-
count
2
client
-
count
2
tunnel
-
refresh
100
tunnel
-
refresh
100
registry
http
://
10
.
0
.
0
.
2
:
80
demo/registry/re6st-registry.conf
View file @
4a740337
db
registry
/
registry
.
db
ca
ca
.
crt
ca
ca
.
crt
key
registry
/
ca
.
key
key
registry
/
ca
.
key
private
2001
:
db8
:
42
::
1
private
2001
:
db8
:
42
::
1
...
...
demo/registry/re6stnet.conf
View file @
4a740337
...
@@ -8,4 +8,3 @@ cert registry/cert.crt
...
@@ -8,4 +8,3 @@ cert registry/cert.crt
key
registry
/
cert
.
key
key
registry
/
cert
.
key
client
-
count
2
client
-
count
2
tunnel
-
refresh
100
tunnel
-
refresh
100
registry
http
://
localhost
/
demo/registry/registry.sql
deleted
100644 → 0
View file @
b1b5ec77
PRAGMA
foreign_keys
=
OFF
;
BEGIN
TRANSACTION
;
CREATE
TABLE
token
(
token
text
primary
key
not
null
,
email
text
not
null
,
prefix_len
integer
not
null
,
date
integer
not
null
);
CREATE
TABLE
cert
(
prefix
text
primary
key
not
null
,
email
text
,
cert
text
);
INSERT
INTO
"cert"
VALUES
(
'1'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'01'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'0001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'00001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'000001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'0000001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'00000001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'000000001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'0000000001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'00000000001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'000000000001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'00000000000011'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'000000000000101'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'0000000000001001'
,
NULL
,
NULL
);
INSERT
INTO
"cert"
VALUES
(
'0000000000000000'
,
're6st@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNjEyNDU0NloXDTEzMDkwNjEyNDU0NlowDzENMAsGA1UEAxMEMC8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKrSdByupjlYwmw+OEcqHkZ9kNf4
NFZjwxOojfJcPoC+pelK/IRxDPnZD5nLgxfFSTzQfLBnQzzMzexzWmPj2ux3p2nh
jT5/Sot40zJa6cJycLg3/g9nOZpFlhDEpyqF92KNIuY2/r4gMZiDiRZNeyY52lnW
VTjehGmYizpBU0KoSSVVSTbUJ5tA7l4bbqitb1nv9m6lfKF/y1C7TfIbHKDRYOk6
nnhOEdJxDkvPfSg61qF9UHM3EyPOZ7gq73gPOct59ccL0v8+tENGtg49X2W/Hlx2
OMd+XJHW2nmyvoWlDq9Z1bavuupwlI2bOhOIL309+BpTJStHWyWE6Sv4088CAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEABWrPo8k4BCbRoZnGTZtlO5fyeDDK97u7gyjZ
RXVP0bxk3FrCRXW3cWtqkZQjlxOxQ99doT6stnJiaRiLwBlI6JSjfRS2/xb4aS8h
12PhehzrrQhF33/JVV378JptCjPV70goKct3PB3g4lxQDNmpS2bHnpZjdfQkR33q
RWdYdUtEyF4Kmi0D0fzTQEwcVWpSwjpyxW1nVBSstIlg/qLpzXQYkfYu4/2M/17z
n0w5o4DuuDEr2cOSbqa1rp06IJkHc0B2bjeCbnkQXp2x5HBrZHel12AzujGHE83R
7yTyU7SkjpQJs0DH2uw2admvCaduf8tszZ2UXrbO9r+frK44PQ==
-----END CERTIFICATE-----
'
);
INSERT
INTO
"cert"
VALUES
(
'0000000000000001'
,
'foo@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNjEyNDY1OVoXDTEzMDkwNjEyNDY1OVowDzENMAsGA1UEAxMEMS8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMBm39B1mHqMnb31Eig/FhcWJOva
AMfYwrxcuLWfM0orX+4M0Qj3Loqpg7Cktzj7TOMCxhdw7cTyoVTAQX0RVFk+jmsY
OD7RGZGUB7Wa3+DG/vhEbPcq5SuQMls/VhNOhw1clgBGDg6bprdNyTJGVlxAzioZ
h9m20RHjEiZFiFjd5EZrUUnV6PNAXS4SNF9GQ360Pfh+/agGliCM9XBRq2zqD0+b
my5RwYKMGvQeeQsK5K4O2PAivel87YGtGQtqfXaKDpVXRxCUPyBj/irSE2xv/IL3
BiMTR2FEUegzPtGs1ryBXx9bls6D6Y6v9+KtKHs4icADtKRyUN/AKhUOafcCAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEAE66CsCulIbugAKWTKCACnvDvcbBBjRZooPnQ
JYnqVrNUFFvpuwpdAD1ke5mfvjCwDhE+eFPuWAFJfy7HHdRtA+aK8lMQld8hr0sh
enfwlpOuxNSbxqHMlnZ9vKVE2Zrw87dl6W4fDqpDlWSvtoKfiYBa6MRg3IdAMoDI
4+fA6AIbxdiNNXw7BvNwma4PGEpsqD3wE4/xNrVpbXc+d20N8Xhexf6NFtTlwwQh
XNayeySHlZMk41CMnjbk9tMSr1HAQVYYA/Wf1Ryy3Nz46nawYFMtdafRTj/Xzs6A
tDtF1kiAUNECGbjLY0xTKm5kWCyl1bIFFcXQu8z3aHZk9UzBRQ==
-----END CERTIFICATE-----
'
);
INSERT
INTO
"cert"
VALUES
(
'0000000000000010'
,
'foo@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNjEyNDcxMVoXDTEzMDkwNjEyNDcxMVowDzENMAsGA1UEAxMEMi8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPfcxv4aS8vmvC5hgXQx/51lviKt
9BaBDUr9EPwxvJoyWwDjINRhcxhXg1OhUALJu4fCGOGroE9pEvoWZRp+GOTBrTXx
f3cEN5OChyhMr0qnZZbDAeFZOtaN4rjTuIH7nONDKkC2DszWuwTBPJ+p8048Qq8M
aAjM08s5sUmvmiWA7zZbtk4RY0coci5W/uf4pnjjB0A/ZfcpBQIuSxFacAD8aDOv
8SEb/OQtX1oAlptGcUTpNS12xgs/sOhF3qqqXg3/OX6IVK1ffvc2GQd3Ovmu82e7
WgFkt031foVPe0kuj0W9zPYvjiLFL2xCBxP6TGn1iLDIDOMocZTRVFDZP+8CAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEAGeF6uzYKGErAHqFNLwP+kBuMiNBtsprrw3q/
ZGzuf19KO+6kKdL0ruxr1A82QVuoJTndJF13xuqocBIy4xKxNYR2IkK2NJuNh+XS
GAXekoO3WJFaIkuYL65td0hBpNGrxhkh67lEx8hvJU0aCoLJsvBg28T4+PHXczHN
3bJ8zWpKUSbK56PJkj8p0r05I2HnGzXFcg06rb+lbLQqRLls+oLnL94094t/mQJi
VpUFjfMgz3kQfFHDo32R2+6nn5lq7Vx33Gdj9ts9bER1ckoD5Z0mZ3soDM3am/RC
XJwpfQom2qGZNH2dBbI/8eHkZ8Zj7RQgAR2PU+6jfz9Ut9lYLg==
-----END CERTIFICATE-----
'
);
INSERT
INTO
"cert"
VALUES
(
'0000000000000011'
,
'bar@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNjEyNDc1MloXDTEzMDkwNjEyNDc1MlowDzENMAsGA1UEAxMEMy8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqbrhL/yPlfnh+floUyX9yjk61f
XzQD/FymcypFcs+6cNyOxzx2o1JiLOh9ETb9tXrsZ+ZCpj21Sy/+aEWtAbrRwtLe
omU+AbOKB3r3Ln5TnCXc4YFOVuul+yNz6pRrO0qtV5FxvmHFynpojPnWOPkIhEXY
gnBvpHouDvM/u3Ljs0aGGNgb2BNwnZfncQwtmsaoekCeV0aao3cxbkg6OmQKVbjf
dUb9ditHhv8T4ssNo89UVwfnOsdM60kLhqMNbyI0b51Xs5/TwRxHzNr3i15DeAMK
Um534zrnU99z6ba6WnSmLANPR43h3otsljJtU7XHUt3QJ6CkynVfHclUhvECAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEAV/YApyKcnlWGUZl+RJxyT58Db3Wzgj223GVb
zXwx2e5cGl1ENIouDriLks9CydRifNhL2oU1SVuwHYRcQfhXukRuUXQHUjmILhSy
t+lhgQabanZ89swEEdefQi7LQ1f2N/gwe9PHmazerllW8VAf/Vgb8jukhSWObve7
JeTlfkcvKdfqTOFHHnrHSUNiCkIIEbHL4jKP8DFZb3UCFG0shoLrJz7ve68hzoKq
u7yAYtNg3W90rwUJ5Djs03BGDVTQm/GnNIpeBzbnyaoyq7nkvnurRkgKGS98dbhQ
qS36+1DwuPlUl9IJsAW3kwvxEgu/lZbwXf+30oaVzJVRAjGx4A==
-----END CERTIFICATE-----
'
);
INSERT
INTO
"cert"
VALUES
(
'0000000000000100'
,
'bar@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNjEyNDgwM1oXDTEzMDkwNjEyNDgwM1owDzENMAsGA1UEAxMENC8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANtC8H6aSr79bS+kg8UtNLoQy/mS
GjfMMvA8k069mTzzYQ1+0SUadVN00sdEjOEz+HoyhM55ipBjFhTUCe9A5RSGiMwa
axB9v/dsDqBpuUSXE8APPlEQkhFlGLjlE6OsmGI5mbiZVL/gRZ/jigxjcYuekNkB
0Vc2HLu1Mka6UksprVk/C0jMSowqRheMQtqH5BmjgLiBTCx24on8eysPRwuAZ2gI
OEs6z0k13jhzoDyp3GGBV1JbREE1GBiN97h9bTeC/ivVf1kqqioAG6QwdlZvhwo5
Q9sVWmHIw/qDgXWYV1CCIsMFsIdmNVejaSiYUI3hm9/ot9uCAMSlpSIFzY0CAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEAXeroStBs1o805hh8ICakCxdxqPXRTtSoXK4z
590x7epWsGMC0NeMVi+UxMrs0GgrYCPATBj3/dFX/utbk/qL4rRwlCJOqBRgSxqQ
QGRbIQ/5Dj/9kVxkSnWLynSjur3VUHtlG7XRU9mxHP9sUJYj+nm7ZDzJcBO0A8fH
NU08pm0RvtkqiS+MYR1VjeHpaXbLPn3kMXZjogPRCbyJ8/oY8uAjPN7DCMjc1cuz
jMzpA8nGWSXfDKfgtsFRNFcHEf1ozGH9aqtBUtWTNysb2zyMV4NpQ8R0R6UjgJpf
8eW1huxWm9bSD8PzCzaCApThGN89dvayTVibXaZVtNT0sZaBrw==
-----END CERTIFICATE-----
'
);
INSERT
INTO
"cert"
VALUES
(
'0000000000000101'
,
'bar@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNjEyNDgxOVoXDTEzMDkwNjEyNDgxOVowDzENMAsGA1UEAxMENS8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOXp2VvOsIpiLl6da9dRvuxjfDHY
5yQOlj4DrN/zrVwVM5Wl+4mwafbORmY5d6vLNSLgvu1sjdlRe0herBzs707YcN/z
9XTk+mfxyy1vhWVl9LeqBRLMgoTGYHMLyuKIT6xVFlHdECfsC2vjLBzKPjmMSduT
jsxkAjm72dfOw51+KJ7Nd0kAeevR7H882Z6yPfvUOuPCzEQhqAurV0ujuUqjVFzx
1OkZNS1yme3cMJWXfg11JpFYIwc9G641vzrAfiOtQnjdgq0v2eHJMmphLB0cXvf5
wop41r5ClxEi/YgZfak5FLNjh5G0uJSG3si1rl4CCTncHz6G1YMCnto8FMkCAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEAoMxpg9CQYFTv6aOaNmblgy/etBQDSZK5bDhp
j33e/xoEPTNxGvkZ+966uXF9pxVz21uUcTJjlOdSzWnN8xIBXjkubOLX9khJoZc7
yhTMBOhyurtti5/keIR1LMypgz/Fsk72DnX01kkmzhp/C5m+cQIX+Y7uio7xIWTJ
516yftcDHIJgmzn7a6nu8G6oCuU1uhWwnUQCyniwodBGAOkhXptBp2CX9S6itz/4
SJT7estAjJYmkPGiZIsZg8z6VquHGEmG+TDP9qmbdlGrPshI11dnqF8B0ozeSNWN
o1taiYL3UMPOORzgdDrPNe+W4l7BxHAF3ctJLa88PjbK39hhbw==
-----END CERTIFICATE-----
'
);
INSERT
INTO
"cert"
VALUES
(
'0000000000000110'
,
'baz@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNjEyNDk1N1oXDTEzMDkwNjEyNDk1N1owDzENMAsGA1UEAxMENi8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/J8RTgKmHHsrhx70VJUHQx+tlw
oRT9glnSUeFquJwN0sfRs/u9ZaPnwDhwBNOEKBXw1ictHCqnVJ4DxxgkOcdTftib
FEXIdUdtMLEehrfbzZ7jJhbNHzkBsP2DfdISNP/tH09OEYuNfvfkL8BdJqi2Yc6F
i+V4DpYX9ByjJZQdAFh8ROG71eyheWImw/XJ7Bpu3FLjxyAMDl7+aLNgj8VCHlxI
ha5PSEpYyQqhyUXKM4bFI6KrT/1Zx+rkzJ0uP6j6iBPIUWqktTCvOfyjUYHNv8Gj
sKT/6bWimj3rPOoPaEDcmIqhA0GdPLuOUkh1lm+PjM0N7If0U7Hy4ZlBLLUCAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEAF05gZ8FLUoGhWHKtcsNfeAvxCd7iEGi3ilze
GikZJVUOddgaMJO/WcCcusMmdl4vsXFNzitBv+ueIxCcIMLnjBOcvtOulq+H5aok
ijt5SBfHOOmpKfzdOcg/Phhl0/oFiJtYAaYIZGGrEAAiG1iY6X/PJEWiiPgEaUKQ
F/y/sxy3syV9A1zZiVcEv1ju4adrXtJCyZN5giuR0VvEcyuA5PPpkTU1S8GaBf19
ZHyZtobDw/6U+U64dYBfWpDdZ8bSJnaueufbgGsPIIteOBeZJJzPBHYivi6rq6rR
syCrauaY43bjqe5i8ydsxVuW5CjBC4Us1/IVA7Ju7p7O9H6EeA==
-----END CERTIFICATE-----
'
);
INSERT
INTO
"cert"
VALUES
(
'0000000000000111'
,
'qux@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNzEzMTkwMFoXDTEzMDkwNzEzMTkwMFowDzENMAsGA1UEAxMENy8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+bhdSvwxNXMkB/lUUCtFy9lwaC
4TUEW+7oxq6g39d0n3YSGDESVtXjdBldW1SWnrv4eqJSut5vM6mwEn4xhZI24zrc
WC5TFkcykMV9idOm/+/IlVnt7aBIrIdgMcAQcSVWRzJ9VaJ+aiZkBHVfslN7LQgr
W+epL6tzitJFKK4y+qhEeR3O66W01mB75M+Rfmma+Y/BeLd8odK38s678TLF/Tt5
MHDROyXp5Th27oGxZD7KdLwQkrONSdoswLogI+z7BL08FPIkgiZn3ZCuLazXhj5+
w3/A8P1mIqeOaLrHm/2dk3F/MW6ekISA8vsniyWHu2k0QQ04yhvjuBNv7hsCAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEATTEvWndEObmFBiu+eZlwt8twcbA6r5Qgq/0v
JIl/TyvGqGa4wWmt/zIHU5rgZe/QC1BfVzB5pSk3TtgCfUQK+eORjowxIaz6BKD4
U4vxC6cmJhuPwHHaq0z1xgQD6Jha0zkPLWb3FbrcquH/F/hRbA+uIG+sYJLhJC1p
gtXwzXiA+IcSmWxL4tIynFbsxSpEKyUbgNp8d//AxB08SA62Sx5JtG6lZiLtHrhE
eOcXdpAmZOs+jsdfax3MhEe8BpaZ8WIx5Au+ddkYAB+8Y/D/17CAl3QJUR6l2JlO
YmyreTZ8FIIuw8mUoaFgz7lz8qAC7PLklLz81VTgDcq3pCKdJw==
-----END CERTIFICATE-----
'
);
INSERT
INTO
"cert"
VALUES
(
'0000000000001000'
,
'qux@example.com'
,
'-----BEGIN CERTIFICATE-----
MIICwTCCAakCAQAwDQYJKoZIhvcNAQEFBQAwPjEaMBgGA1UEAwwRcmU2c3QuZXhh
bXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEXJlNnN0QGV4YW1wbGUuY29tMB4XDTEy
MDkwNzEzMzgyN1oXDTEzMDkwNzEzMzgyN1owDzENMAsGA1UEAxMEOC8xNjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKldLj4pDTK5oZv7GTLmAqCzmVP
8OEzdBC/vwZQaD/hrx4JooUbEnI5nCvIi9WXBBAzYb0189Kv1trB9H/23sQhxqo+
BW1S/NJETl5OHnaQudcCYJHheIo78fFi9neZMPPbQ405yZ+iELExw75LmusMNSjF
3qpJRZNKHpMuzwVsdVHH3OFbTyRGOlAnYD9s7CkemxR5U5S/W9XRsqI7+AV+hmRE
A8k4sG3GqlbLw48tRYOTzrK1r2VcCcbw6sb2mXVCpyHrpqOylwspJWtqi0o9q7+X
C51ZwSRuG6LApa3VCN4VkNjZApd665xdu66ZsM/I6xfCwh2+uxYipskC36UCAwEA
ATANBgkqhkiG9w0BAQUFAAOCAQEAPjQhnmYiTuKcxXmVOQBMHwEe1TAZIgCMdiGI
B3asRz8OV9LADi9otg3ikNyaKjMJ2RzbBVsy7SBggJcW6ah6GTAoCFeIFy38kz9G
qZnWyZz2NfI1VXfIIzrvCQQERPjp+c3U5LaPwti6FD0YQ+8u0oydiV+LG/ZtPlv0
pvyQ0E3VIOZ9u4OJ8cDPmx7CjDEKxg3bpeP6pXJkyXBmyBGvtPUhq7p4hX7f7gUM
XUqGjnQEt2DbNHB33Z+tL/LP8bsXsiUkNaTRghYSk0PTmFwJbGkTA97AC+QpjpE1
+WUd86Z9FRRR37t/nFQNvm6wZqemsT2Wal1cVv6YVFeEZOvrFw==
-----END CERTIFICATE-----
'
);
COMMIT
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment