test

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2015 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DiamondPlanConfig is a diamond shaped password plan
	DiamondPlanConfig = []byte(`
# [secretbox "top"] -> [password "top password"]
#                   |
#                   -> [mux] -> [secretbox "left"]  -> [password "left password"]
#                            |                      |
#                            |                      -> [demux] -> [secretbox "bottom"] -> [password "bottom password"]
#                            |                      |                                  |
#                            -> [secretbox "right"] -> [password "right password"]     -> [material "bottom material"]

comment = Diamond shaped plan
root = top

[secretbox "top"]
comment = step 3
edge = top password
edge = mux

[mux]
edge = left
edge = right

[secretbox "left"]
comment = step 2a
edge = left password
edge = demux

[secretbox "right"]
comment = step 2b
edge = right password
edge = demux

[demux]
edge = bottom

[secretbox "bottom"]
comment = step 1
edge = bottom password
edge = bottom material

[password "top password"]
comment = step 3 password

[password "left password"]
comment = step 2a password

[password "right password"]
comment = step 2b password

[password "bottom password"]
comment = step 1 password

[material "bottom material"]
`)

	// TwoManPlanConfig represents a two-man encryption scheme plan
	TwoManPlanConfig = []byte(`
# [secretbox "master key"] -> [secretbox "op 1 key"] -> [password "op 1 password"]
#                          |                         |
#                          |                         -> [material "op 1 material"]
#                          |
#                          -> [secretbox "op 2 key"] -> [password "op 2 password"]
#                                                    |
#                                                    -> [material "op 2 material"]

comment = Two-man rule plan
root = master key

[secretbox "master key"]
edge = op 1 key
edge = op 2 key

[secretbox "op 1 key"]
comment = operator 1 key
edge = op 1 password
edge = op 1 material

[secretbox "op 2 key"]
comment = operator 2 key
edge = op 2 password
edge = op 2 material

[password "op 1 password"]
comment = op 1 secret

[password "op 2 password"]
comment = op 2 secret

[material "op 1 material"]

[material "op 2 material"]
`)

	// TwoPartyPlanConfig is a request-approve-unlock encryption plan
	TwoPartyPlanConfig = []byte(`
# [secretbox "step 3"] -> [password "step 3 password"]
#                      |
#                      -> [secretbox "step 2"] -> [password "step 2 password"]
#                                              |
#                                              -> [secretbox "step 1"] -> [password "step 1 password"]
#                                                                      |
#                                                                      -> [material]

comment = Two-party 3 step plan
root = step 3

[secretbox "step 3"]
edge = step 3 password
edge = step 2

[secretbox "step 2"]
edge = step 2 password
edge = step 1

[secretbox "step 1"]
edge = step 1 password
edge = material

[password "step 3 password"]
comment = party 1 password 2

[password "step 2 password"]
comment = party 2 password

[password "step 1 password"]
comment = party 1 password 1

[material]
`)

	// DNSSecConfig is a multi-party m-of-n OpenPGP encryption plan inspired by
	// the DNSSEC root key.
	DNSSecConfig = []byte(`
# [sss "five-of-seven"] -> [openpgp "alice@example.com"] -> [openpgp-key "alice@example.com"]
#                       |                                |
#                       |                                -> [material]
#                       |
#                       -> [openpgp "bob@example.com"] -> [openpgp-key "bob@example.com"]
#                       |                              |
#                       |                              -> [material]
#                       |
#                       -> [openpgp "claire@example.com"] -> [openpgp-key "claire@example.com"]
#                       |                                 |
#                       |                                 -> [material]
#                       |
#                       -> [openpgp "david@example.com"] -> [openpgp-key "david@example.com"]
#                       |                                |
#                       |                                -> [material]
#                       |
#                       -> [openpgp "emily@example.com"] -> [openpgp-key "emily@example.com"]
#                       |                                |
#                       |                                -> [material]
#                       |
#                       -> [openpgp "frank@example.com"] -> [openpgp-key "frank@example.com"]
#                       |                                |
#                       |                                -> [material]
#                       |
#                       -> [openpgp "gloria@example.com"] -> [openpgp-key "gloria@example.com"]
#                                                         |
#                                                         -> [material]

comment = DNSSEC Root Key
root = five-of-seven

[sss "five-of-seven"]
max-shares = 7
required-shares = 5
edge = alice@example.com
edge = bob@example.com
edge = claire@example.com
edge = david@example.com
edge = emily@example.com
edge = frank@example.com
edge = gloria@example.com

[openpgp "alice@example.com"]
publickey = "` + OpenPGPKeys["alice"].Public + `"
edge = alice material
edge = ` + OpenPGPKeys["alice"].KeyID + `

[openpgp "bob@example.com"]
publickey = "` + OpenPGPKeys["bob"].Public + `"
edge = bob material
edge = ` + OpenPGPKeys["bob"].KeyID + `

[openpgp "claire@example.com"]
publickey = "` + OpenPGPKeys["claire"].Public + `"
edge = claire material
edge = ` + OpenPGPKeys["claire"].KeyID + `

[openpgp "david@example.com"]
publickey = "` + OpenPGPKeys["david"].Public + `"
edge = david material
edge = ` + OpenPGPKeys["david"].KeyID + `

[openpgp "emily@example.com"]
publickey = "` + OpenPGPKeys["emily"].Public + `"
edge = emily material
edge = ` + OpenPGPKeys["emily"].KeyID + `

[openpgp "frank@example.com"]
publickey = "` + OpenPGPKeys["frank"].Public + `"
edge = frank material
edge = ` + OpenPGPKeys["frank"].KeyID + `

[openpgp "gloria@example.com"]
publickey = "` + OpenPGPKeys["gloria"].Public + `"
edge = gloria material
edge = ` + OpenPGPKeys["gloria"].KeyID + `

[openpgp-key "` + OpenPGPKeys["alice"].KeyID + `"]
comment = ` + OpenPGPKeys["alice"].KeyID + `
keyid = ` + OpenPGPKeys["alice"].KeyID + `

[openpgp-key "` + OpenPGPKeys["bob"].KeyID + `"]
comment = ` + OpenPGPKeys["bob"].KeyID + `
keyid = ` + OpenPGPKeys["bob"].KeyID + `

[openpgp-key "` + OpenPGPKeys["claire"].KeyID + `"]
comment = ` + OpenPGPKeys["claire"].KeyID + `
keyid = ` + OpenPGPKeys["claire"].KeyID + `

[openpgp-key "` + OpenPGPKeys["david"].KeyID + `"]
comment = ` + OpenPGPKeys["david"].KeyID + `
keyid = ` + OpenPGPKeys["david"].KeyID + `

[openpgp-key "` + OpenPGPKeys["emily"].KeyID + `"]
comment = ` + OpenPGPKeys["emily"].KeyID + `
keyid = ` + OpenPGPKeys["emily"].KeyID + `

[openpgp-key "` + OpenPGPKeys["frank"].KeyID + `"]
comment = ` + OpenPGPKeys["frank"].KeyID + `
keyid = ` + OpenPGPKeys["frank"].KeyID + `

[openpgp-key "` + OpenPGPKeys["gloria"].KeyID + `"]
comment = ` + OpenPGPKeys["gloria"].KeyID + `
keyid = ` + OpenPGPKeys["gloria"].KeyID + `

[material "alice material"]

[material "bob material"]

[material "claire material"]

[material "david material"]

[material "emily material"]

[material "frank material"]

[material "gloria material"]

`)
)
View Source
var (
	// OpenPGPKeys test data OpenPGP key id & public/private key pairs.
	OpenPGPKeys = map[string]struct {
		KeyID, Public, Private string
	}{
		"alice": {
			KeyID: "F3720A7A58FA44A8",
			Public: `-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFYZnaIBCADy76WUjG+FbEF7yXykjlpwbENNzIC1B3eFWQOChKmgcZ1psLtB
KIylhA5KxK+6906KmFh6DOQt9sOt/LeSqpLVfx0o2JGtEYno9veDKOShb8CaTg3O
c9M/e+9TvhXbxVzZCZ9xK/AvCgbkjnCORuIeydQalAuIsVb22ZQt1z3YG42T5eO8
KFfo9NiPlt6kOYkBwbQ+Z+LkO/ErO2lSJVVBEAlpoiqVIzzCSPlmCM3Ryp1iX33a
CcvQKd/O5+kH7r0FtpDy0SCByOCklGDn2ZBwG9CMvWr1FGrgAg1rRqkdgR/DQvHO
gyIZCjg6oK2t569sEPZjxN55HmOpqiIpbbiZABEBAAG0K0FsaWNlICh2Y3J5cHQg
dGVzdCBrZXkpIDxhbGljZUBleGFtcGxlLmNvbT6JAT4EEwECACgFAlYZnaICGwMF
CRLMAwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPNyCnpY+kSoC2EH/0Iz
aBNW5oYyKbdcPo8E/Y5Rd80tN6jzv5PKcBACIU6UknXfcc5RwF5WY4QtgnGIDatG
wox7+h/5tpQu7P0qL5nSL5bst1p0mTVowglcZIGdCXS0SF8RPLB2Kv1lTjUUBgta
xydPKWqbheEs0Qm7rul6Itb1ig6yGfdjdyZsgLaV+G3hvmOIi6EDJlBgAAgVa0ow
yHHFKXwH1YgfeyvZF/zp+Y5Mugxyku55M9TSLG4jHThPSFf0AhHhZvcQEQUk6RhP
o7MnG+BfLMnPmpJdKZ2N4lsDIl2yHd4mDGzrFnamLr0zG8Yc3Fs8Oc3rAeXWESET
I9RNh/5m7mG1qk4vX2W5AQ0EVhmdogEIAKZKFNkSp/cwj4wPem/YPV1Q80IXQjLn
6aScbLdyS045XLuw/t5+CYhonETdKP3Tq+L1gobD6JnJ1C9PdEh5jo8EKZd9mL7n
dhXEJjkPhDd3KpjQXgwDC+hOTDT4+rInYaTTEY5PXuo1K9nsNxgSCUjqUEoxxAyL
zjMNhG5YiyRsQlSMoISuj8SSQqxQAAFNFeHMil4nlvyT1CpdLMwaeLTvU8AsBrcC
ZG7CMvigAE298zKfR7EJQtOq+WjOf5cCIGj6Zb5Ggn4Pc769zmuPvV4eQK5Poa5k
lcpMtMgz6xuOVXFRCFtgCXihwToCCsw8cdcs60Oi/KI86wo0p7dxw+MAEQEAAYkB
JQQYAQIADwUCVhmdogIbDAUJEswDAAAKCRDzcgp6WPpEqB+jB/9WMcyuDcs5NPhO
Nxe96cIVOFlOfKOv8FD/dodngIyWIVOdIhDH4cgJ22vj7jHw8LtUDvkneYtKE8oi
7HtjwJfBKNNoECNj+TYywGlhaEM9Tt3SFMIPkjBfX7bkwYumQa5/rkua+NJs7X+4
/L5YHtGRlGx7eqbA8nqPIZn1HmAoaIxVOFzM0+hkRMDCZ5EWh5puK49AVETSda2H
1n/Nabq8B0i1BizW5426TOa6ip6DXIxKqiWM5KY5AieCAQ9plgKwMaN0vdkWKd71
dkSDFER6vdQiJ51GPAd5QCcY6e1lSknzmlFYsKIL8DL/vjd59vrIBDfRoo7d/qw3
4qgVlwTe
=lKsa
-----END PGP PUBLIC KEY BLOCK-----`,
			Private: `-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

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
oo7d/qw34qgVlwTe
=4mOI
-----END PGP PRIVATE KEY BLOCK-----`,
		},
		"bob": {
			KeyID: "0E83208839AE031B",
			Public: `-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFYZnboBCADgcbYzpLu7FL3RH8B/h9tqPFIol88wl+TjGUslB56RsdNlES5e
B8e79pfMJ4zTjkWus9JVAgE3fNwFGo2fZdtIcbM2WePzBenFvCge3P2MQ/Xee+1K
cC2nAQrancKklp4S0ptLQ1BuTygQgPBrKHttHKOcSnhuDA6LT3zGSwHuulywWEje
FaQyCK7/zbHkS/Jr0TNUPV5GDT6Gs+BJm4GHhD5rHBfeJNprC388PoaSbhq5quik
klOnrngHJHYR5HYDgtNx2VH2t/6pZmeC9gRfXU6yKGe73VTtZJrz8P9GCvMrYh6V
nUnTouMCE+heFYjghnmxnGvG8ShXNMw5celDABEBAAG0KUJvYmJ5ICh2Y3J5cHQg
dGVzdCBrZXkpIDxib2JAZXhhbXBsZS5jb20+iQE+BBMBAgAoBQJWGZ26AhsDBQkS
zAMABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAOgyCIOa4DG/XrB/47YMB7
rbx/XCrKmLcqlsnpQGwVS8zgFDjEsPjv/+1b0gK0xDBBp080RpDGFF8iB1JfOOaJ
CWxWUYpFSpdKS5+Wda0UstvcjPt0+YYYfTZ7jp7SDzwRdQDt2VMcJH4AjmxTkOTz
X88yEXgYwi0T+nXojE5RDsSEhgOgfsJfp6Q1Ob8UsmIjNThwpAi8qttwK8z77ZDj
M66OuE61oAMf/epHW1iwDS0E6w6qbjN77cZ9te53QgcbaJOFvE5HsdKA7wnWpu4/
WMVdVcl8kC5L4ehkeO2Ny74AWjw0dNP5KONTi0tQpA8CZ1UwPL7ySjUo/Vququix
l3bGmozGBge7OAtWuQENBFYZnboBCADYozD+tZ84+JR33sL2yhR9NSP71zKcGKC8
/19dk+ug9Sl+OaRn6L2zayPGzxpTJ9dhVlASmQW4Uk8F/5AY9Xik0b70p/DfHArG
mwApw4y6AzxI9sz/4963JfwtUsd/31rlC3iPmkAgF8HMFkoInVK+NXsxk6k5S6ko
xRc/f1904QyKoM4BMCtqGZ/8afGbs6gVNMEl8AUQKYZYyKXg69bnqT+jDiYrWP5s
POkXsQHV6D15IJ8Thl7QR9DLtpPIpVyYhMRYiOCrAXsfILeiuBl2isEQx+1DTkAr
YY2sBJ05x9V6V+3HjMENDn7aYexmpDcurACfkmKWLvMq+l152foLABEBAAGJASUE
GAECAA8FAlYZnboCGwwFCRLMAwAACgkQDoMgiDmuAxtFPwf/dUe50W9H9QgVPDHu
5sWCFpPdq2YazxyqgVIuL32xLjQA7ZW4boaPjHiu/PhmJ+2DqenEwxGcP2HtrE/p
Nwx23AFZ8HpiSgWAMiz9UNeueAqsDZM72QKWliNZ5SiF2y1JdAOED02KQLl4OqxV
cwrdiOCSqsybSkIUZEzR5LUk7WcZB78qRKJogxRSheLEQQWsh4XHUbZ5Af8q6j+9
Ev0Gz/tjOIbfHPV/w5cXKt49m7uy+4vAIVIQR2eC46X6qj4nu+6tuOm+Hc3g/6W5
r6h8lE+ah7WvJVMdn1bzkZyh3VLJPZ0FK0Xy3MxioSmJWYmA6ZTC/Ek2lKC5zsgB
c+Z4ZQ==
=+p6Y
-----END PGP PUBLIC KEY BLOCK-----`,
			Private: `-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

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
lKC5zsgBc+Z4ZQ==
=OMgC
-----END PGP PRIVATE KEY BLOCK-----`,
		},
		"claire": {
			KeyID: "A1641E773F0379EF",
			Public: `-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFYZndIBCAC7cEp/3S9gZOJ5qFLcMoHCAPMbaxyAO6od+rQ4aqKwgCLgftU9
lj9f7HIA3+tW3akNWhRLIUYBqxTk5u4u1Ct8Te7tCZESsCBA/0eTKbZbkyUKM6xD
+FHqCbcXj1/X8tZBN6tvLHJpDHxV0Dz3Sws4eVljTdUSQqdbLBJNk5zhu6QcWJQc
PpmWhDCIBqkxOh4Kf8PHYYklV9OEmJ0YZKcmLVPC5FzY91v5SZkuKJE8HiIjp1Wm
3IMfTfi6111JvmAkwDNivtOA+RGKNOj7N0bm/qntcnFJv1CYRt9V2wMWQ4P9Ikim
QkNLj5WX2BMI0SuXJ4JLXceW+imApHWY/mp1ABEBAAG0LUNsYWlyZSAodmNyeXB0
IHRlc3Qga2V5KSA8Y2xhaXJlQGV4YW1wbGUuY29tPokBPgQTAQIAKAUCVhmd0gIb
AwUJEswDAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQoWQedz8Dee84hAgA
mNatrCtYgAD8KqNMZYbLE42dLSXYQQGX8mI2QnFk9YhjanZp41XqqVOBesKRdKmt
J56Sex6a/6k4ikCFpMwoqZtmUMjOJvTLY+6HurFwVDUvFmYqHFCSBUPeVhKpMgeC
SlGfD8pGrQG0LjdmRk7Q2BX7RmO+Qb3esl1AeXZnV/h2X1Il9pdNw+uDgwUIwwMP
LVd5Ve84/vWJQKYYLSQ8LkRkoDhMln2sBCSqt3i9VWihA3UXL081+5uaFL0dFVmO
dZK+QKi2NYdlfzTx81OZiRJQFE598rBqiKYWzbmR+uJYl5VRL3Y5t/LiZthmP/uF
3sgc2OusEE43e9gJpPnuzLkBDQRWGZ3SAQgA3hWQaE2nv/ve3s7teNWZJ801WaxK
vqORTUo5MQh/o1CI8Fmo1DgjOjeCEq4guMLDICJoCvk8VJhN5GFOvdwmCG+J0/j4
/OHltA1OEREyguEUqwi3AcICyQVOgSJMN5cpikzqKZb0SvofBH68+b9Tbgi0psIC
2Ga4gOd03CHd9TngL2WjTg7amiV6ntx74Hm9C5yU7sHVq9DheYNGcs6Pns3Kjz4Z
4QaJ5lnjcRuOnJH9tert584W8IozzqgMiTqZrJH02mVGrM8MyxOLZIqagTEAD3hX
juQu+niFR9+aHbDLsdO+pAawv+owdN2CD/bztsjst9PgTku+C8U4BLEtvQARAQAB
iQElBBgBAgAPBQJWGZ3SAhsMBQkSzAMAAAoJEKFkHnc/A3nvSAQH/joGZ1YrFUGb
FownP5uv/UqlgwUorpXCY2hxlPZqB4Rb0ua1TzYtoq0ECo/g4+w7QKyOmSEIJO0s
7hSESZo4rnjA0PTA5LIcyZaDtFFtmcoKBohNXuO/WTuC+WJ8pdsMXt+RO5fKKspY
RRB5Iiuy9/wwCd8WlGlsjoqQf1VM10thRGk2a8uigRj0OtHmfkeazeQHRBnGqHyq
GYojhwvwHrEfT0Hd/BRj8ohQaW8rmyIfjFQZU8gag56zyGxIu6bXxwK2CG4F36K8
tnqVzRupza5qIMPLTkB+iDZpgwV+/yTqkBYLNXUWXQL9kZm6mlVacj54ARrziMJ6
mKSt2ZwE2V4=
=6+bV
-----END PGP PUBLIC KEY BLOCK-----`,
			Private: `-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

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
ARrziMJ6mKSt2ZwE2V4=
=zntp
-----END PGP PRIVATE KEY BLOCK-----`,
		},
		"david": {
			KeyID: "C42B14885269CBCE",
			Public: `-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFYZneUBCADSg54BVLNsx9f5LlPJ2TT4bfNBQoA2DEUq91dh1ZZp5KSsOAaH
QBDoLBFQEkf/XGFbDELB72Fj4hKX2qIv4u9u5h0yc7a2M6vFITNMxBKYIFm98CKX
Ut83OZNt1wHpDh/h5vp3uRtLu8rNT62iCOGd2aLz77Djv+cIF6+mSYWU80jWum+n
fD+6nhf1o5EK7NlU9yRcaQs8KpCwHvwT9gRm1DINQCuQbdhJFc1obVvyokusM+3q
TieP7nYArNEGtT0rSxCA/UNcGgBa6xCCriW7K8M5FN+5W71Pry2V2iiAKlgY4NVJ
cIIRveErkC9yh4Q0aiaaJpVMshXKlhJoN5JPABEBAAG0K0RhdmlkICh2Y3J5cHQg
dGVzdCBrZXkpIDxkYXZpZEBleGFtcGxlLmNvbT6JAT4EEwECACgFAlYZneUCGwMF
CRLMAwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEMQrFIhSacvORycH/iCp
fm0XO2d1/CGC+l7CcGGsGf1RVjSEWLgzfrl/MvLfessPajDkwt13m6IWHyPHpEpM
0a4lz2LqnZXBHyd1PYnFWxOXm+PUcLeThKMb9pJETEE6X/DEjKyuK9Jp6Kn9IUil
Y2q4Yb9Zj0uss7mkcXAokZYi633Z8CUnNJL7zuq7DgZ3mBxr74puYoghulmCoBFW
HPlpKzLmGikl0SH0o9lBedBaD0GsxHfj/OFz0YGMsy7cONsGAMaAGLcJrb9bX8He
d31GqgX9A+pdRbLYyRtG5BbkndMwRaDjKByeXzsCAA4yh3Akvgt8pf9zMkHkB9OL
Cr4mR/mTYNFHRs6klp+5AQ0EVhmd5QEIAKDwwCY0eT37SpV/26zA5n2/2RfnCXxx
MAfrbqr2fPzFMmcgw/vMdZlfAlViCibOquI57adTSTNumv1LNGK6aPCiHMtrspY1
aPihaz02lVwqgy2M5FROGS0CarmJC6aZiiXiE2sRCMsRPT1mPpx1f1FV1YbntZr6
JPzlW8gUzBxIF9atvfFAdAsKo+tYO68oYrLfcKrxOhpBlT/5r+R83BBr2LAiVLfw
8zpofNUGQN/pqxB14Z+up+al1stwBVCeJzDMZ+r4AMWO4FCiMO6BhNypgGWlAK5r
2HqVbHVq5Dmobuxx4mX90r2E1N2xPvJv2j2cwYdlmAylIKfBW4nmLa0AEQEAAYkB
JQQYAQIADwUCVhmd5QIbDAUJEswDAAAKCRDEKxSIUmnLzi4KCACPWynGR1Rz3sZn
MHBvA1zSkZ9Lx7KTTPI8FguYMksdDo38FfTb2/aBaT35iXwXj50rxU+DK1RU7lJu
oxhvAaxnWJjKFYOwOIPuTBhngkJjV883MNKq5koPUmQySlwE2XBK+cHjyOZ8zTNq
vdA6MtFjgYSgQNUo8Ub819dFFfKX+tOrAxZ2kIpc/LAaptrLwDiGNCPJ3IW3EJWp
wzPvDI/7bGrIzorhyvcPwXxeIDDk1ZXtRcDad46oGhC/ZNo0P4/vXZciaPJntVg6
c5uDE6ZitaPhR3Ke99hchXxj+LmnVGKtbDfJjGvaqfMDq4jnsji08XiK12OzTeJ3
/UhY9yzY
=e+H1
-----END PGP PUBLIC KEY BLOCK-----`,
			Private: `-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

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
12OzTeJ3/UhY9yzY
=E0eW
-----END PGP PRIVATE KEY BLOCK-----
`,
		},
		"emily": {
			KeyID: "C832AA780A48050C",
			Public: `-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFYZnfgBCAC7daAV+NQ3MdU27Cl9Jqm028NlCvReZG8MCXWRAN36IEahS40c
Jeg+q7SMddHefJmwx30QIti0EBdoft3/2ciW/SL7/iEIoDivFmxWUQhIszesATD1
yZERCvGSOBVJr83Tm6fyUM7f/EVcWnZm+5CTFBOhn6FMJLCVRhv23KWX98ARKME/
vFcEeMYmWZKPOza+82nvug6c6K+ZYJsatkdzMDZq+DvBeb8T+JFaGl3rMbnighzR
JocpOBq/CbJau0VwmaHNA7lqkP0O4mbniLOO7Z//9DcDIJ5yuvve9+NKjRWoNZI8
PYT15s33Ravdp71PvsEOL43P0s1DjAaCVO6rABEBAAG0K0VtaWx5ICh2Y3J5cHQg
dGVzdCBrZXkpIDxlbWlseUBleGFtcGxlLmNvbT6JAT4EEwECACgFAlYZnfgCGwMF
CRLMAwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEMgyqngKSAUMCvUH/0n2
kDrVKjEoL6gzqddYhldiDhRdrR3PXAIvIQA0KG7w1MkyNtLH/cxvJ6nWFuEIf2Ey
wjjBqkqYKECyP84bLe3psntImJQLgsnfZMYPY04JTzRy0UsOLXdfeeKBTcEAADkm
NVOZ9tm7nXIgvvyRTzvQ6uFjAyu99ABj8oqT5H8sWAWZVQxHrrIVFKZzyBmj0b0N
HYu8t0jPLKLLRAODwC3aN9bjy4YuT0vgxYEGynuhAPDbPI04Z6gxViXu7IHzIu5E
GcH11j8hHOYqIqOGwm7bhFm3AShjtA2ufeSWvMR2VQSZs2V5Tt2weW4rsIh26G+L
Nwf8kW7Ql7uYPucj6HS5AQ0EVhmd+AEIAOAS52Q4MxLzRMPPj1Sk49hBTUdwQM5z
EwIwSwk7aG/JiJY8NoIPEfAGxiPJhIPCTqAAcv08dJPu0mmiErhpPGUVGDAAYoot
i8JUzbg6DsOBVvR6L2rOcSrb35XWH5sCB389iVsDm6FG63qOD9AM0/KT2srLyyh/
YY30o5DXV3x6Id4BP2PDeuMsAfkh/a99m9BjBubRVDLrUrfWwJkyFCCC7qlKS1Lh
Nl7Y+M8nW2wKQS4SpjaYvZU60iiuWY9zu3L1WGuc1y9gyonZnnScIUvZ/SxjvJao
bMbiau9iTERC8h/mm7Lsc3MgGICoYc7bGnF5P9t07AwQxxQkRJULUmEAEQEAAYkB
JQQYAQIADwUCVhmd+AIbDAUJEswDAAAKCRDIMqp4CkgFDAC+B/4qknrObiyjUsyH
e/opCiW0N4W7sXbLc/O+al+Qif28m13KxMVPfPkVoE6a8ShYLL6KpXTz+jnvrBLE
sPqs4NoNHV2byUzpHn9EB3MlKceZtRef7JjJIz50q4+uxBNlXH3VM7LqB2uUwGGp
NB6efo33FP2q5U0LmpvV6ga05cdnP+dEmI080gjWglJQXM4EyY9GYeYoQlTS5wVd
nlSUxQph43NY6WRidwqQ77MBZSMwme53XEMqhfxMKUr/wmi1GR2c6p76LjUmU/Hb
XcApdNRBn1aE4kz4DNnNOsZkX2GdBYBtdlroxtE07QcW8Z9ugjuL0QKTtEY0ms4/
QVRmsGLp
=LvVM
-----END PGP PUBLIC KEY BLOCK-----`,
			Private: `-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

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
tEY0ms4/QVRmsGLp
=nmRN
-----END PGP PRIVATE KEY BLOCK-----
`,
		},
		"frank": {
			KeyID: "16C069B4992CFE6C",
			Public: `-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFYZnhoBCADUwXdzN276k4iYSa7XzggD/LuADx25ELIjKPlYBseQfDidfFnJ
W8VcMV8uKvYPrW+MnSqSDoSwIxwQZKrvp5WP0hYFd1m0yy9m+g7XPXOjD5aPkLMt
GS9oCdTGXkx1lZEAecKdFeeogr1GX/H8/V+i/KKh7Xr+Pdqg03Kb9NUe0UEAP68X
tI6WyVweyYf0smz3lTEemdfyY7X/7rRacQs7OZ1zFULZEJ8Ayo5v+9NLz4z7sHft
qJFNa6g6HWZJ5dFSQ8LKCPxmhu0whE3j/v3ZAl/dQdiSpKdR8xqJxPdx7Q1gQBiE
f6DJ4dXYwI8Rr5jJlPeMigp5EdvYWQRF1oPrABEBAAG0K0ZyYW5rICh2Y3J5cHQg
dGVzdCBrZXkpIDxmcmFua0BleGFtcGxlLmNvbT6JAT4EEwECACgFAlYZnhoCGwMF
CRLMAwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEBbAabSZLP5sNpwH/1F1
ah39XrqycSsvXfotCxS7LH9nVfUB+iKx9vD0HWMV6op6iK/S6GUttKo26Iiibm6l
eusXPS+UTyGV8Dl3hEBq37G0MuABhV4tsdMonnv5IojERgqtLbRHt/+HtesHSfuV
f/p2jxxagGP+Aj5WRpwZTMKvJLNjNB7+Ei+QJhN2zMG7+MsigcfYLvrgEQoSboac
cTmpzcGnwNLn+/rdwUb5uucGxkSD5LnZQvpplNvsiDcywB2utAX0+l+24ig/yrdC
vj6gkU0iCbtDH9HSeQBN0fCbSOXDEQnVFfORe0FrYJOz6Xl91P6/BjXEBfOsOOHA
4/MG0ZCjQbrqubtxPZu5AQ0EVhmeGgEIAJ33p1g+jRSLrl0UuC5Ygts9LoPHpynS
3PARf05hE1qzBb+FYzPTcYdhZgjerQ42FT69YzRy8w4INr0TM5uSUJp0hYmg5VOb
NDZerhRUTxTxdv+F9Jt1/SnRn71/n6za0j8pM/dcbtK7akegYrJqowO2X93xZgfx
V1jwENGWx3v3g7/tZJ/cdS4EYmWF1m8VZbQGUIoPQokyp5HciM+NM0e2RqhxpA3H
XvGXbTKJMt9iiQ5pSOPeWRnw7hc+itpKe8dz1XsGVDD58xRq+EvROTAG1Cr751E4
Uhme+nQFxPeTJlqZlcYrKyWDTfw2Z8iRmYviNBC90w7ZoxhSEN51KtMAEQEAAYkB
JQQYAQIADwUCVhmeGgIbDAUJEswDAAAKCRAWwGm0mSz+bKHuCADS5hdvFIV28tAe
k7YTP0knpAaHdZZsV4JrdHAIvtC3dDjgrT0xQbjb38pB/Wbglco8DPhR/YDaQlv7
c3t19pqcovdpfBDlrAuYm6M5fXbzvCdPQvIY5qDN97xPGdYMNS6rRNk12gmrQFiu
I4eneX0gW9oi62092y7aNsdNpMZkAWYRtQ1HR3CYwgqhTI5XUTOTK7OniPSJddsO
V2+LySWBWsthH0DyAUF8ud/hMY9/58NzKWP9bhHKH6da90OXFeeUw8Vc7O1x4iII
XvEn5wPNiIsEVS14vrkDy9YNWHQHAtwDNVw38nkKw/W1ruzF405ci9pp97AiqQ3Q
r4THqv4s
=4PZf
-----END PGP PUBLIC KEY BLOCK-----`,
			Private: `-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

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
sCKpDdCvhMeq/iw=
=2/0U
-----END PGP PRIVATE KEY BLOCK-----`,
		},
		"gloria": {
			KeyID: "F483DFBB9B4F72EF",
			Public: `-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFYZni8BCAC8qbWYEOvcTefUDyRLip3NkeEApUpvMA6/OxeMmhpRWX5TEIjh
YUgfN6MlwVTOkcSkyLTrb9h2ayAq1Mj3WsiSfrxlJkLqeHvfwnMMSmsp2vsr0ZiC
ijLVFbMsE14RQs7WdTA2mAvotamUl1orl0dnl7jCa+WtrVrx1y/GeSKn2BqRhh86
9j3WYWVtzToH5Q/PM4EPAkEGHd5kW510EBVD2+BXyRZAMHHLKPTxDcuqS8+boOl5
5sxWlMeIQOkXuK5GQThLWKbxe1v/Txb1hYTR9OvcGI7hgRh3NomkxV4mh+wW7sWh
5s79HvYQRApiaamO+1I+GJiKthv1NQ68B8BpABEBAAG0LUdsb3JpYSAodmNyeXB0
IHRlc3Qga2V5KSA8Z2xvcmlhQGV4YW1wbGUuY29tPokBPgQTAQIAKAUCVhmeLwIb
AwUJEswDAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ9IPfu5tPcu+CRwgA
pxSikuUptDayVA0ozKecCxgNvhF6fJWGWrGvrHMeELQQ09FoR0102dXPVFnH6VmA
ky1fak3jcJnSzB9ioVXdh9LvTkqRxR+JKl0+H3F2YGDt9BbunTN9tEzElavoaXae
izYr8dRR0KJy8UarX18E005Yh10A/fCf8Uz8do8njilVxt8Lqsl31/Pw/Us2XPmX
xPHfV9ZYqjn8yfGSqrPmSL9hbOOEoOtqnqCc+9XF9Soykis7jfjMXoKT4Mx0Bovg
/3GYJas13R3QJNu4hf8D/YyGHlrGPYsKNl4xrHJRHdCdLvQgZzemNZBDsMmA48JV
8sEHWPFDLVw608FYslCYwbkBDQRWGZ4vAQgAu7wtSkmB82VeW3ZE0ucF1VFJjY1R
Duo5SELreB+/kaFAUuMUwk4xfR5USTEUtVdDwVTuagFs5ElADOzi7YXSz/fppzxl
MbhyJhoxDL0CY48+IzHAH1hNAAlaH1gj75+OrdLSPvTW+GBYaDZljUqIygj8Zp1v
6s8mZUMjHpSDgbl6lDRPsg14f4/qK/28SxAzCS0LRpWjD3m6EJKjFPLJ+GxQId/g
USfeEV50GkBO1TTBfubJdJIb8x3NvrpOQd7t/GIsv5L1Qce+9RvfWL10cxyno+s5
EjD41kG/DWRL3H9xVrtTaASs26POeWzuyDERs0KzldA+vjR/6AGwlMLWZQARAQAB
iQElBBgBAgAPBQJWGZ4vAhsMBQkSzAMAAAoJEPSD37ubT3Lvpv8H/01tdxAV6FpI
OvtCLOqQhM5nxmwaPAMtAVe7grhFw5fkGgO5O3nE0/UZnYfTxw/WQk/YHmH9XuQS
SrGK/5QXXEgruN1cv2CbvpgpCJ8+wL9qRIAwsD0FHfLDM4ltMrBjZknzehuakfML
SDdzk29e9tWlyfb/nI07FbKAjCyf6EMIxCNeFAz485v+VznlKUTDAxJ0ttQY0QWe
qQztJ/SnKD+mkc7U+CpC04nlNeksoPW8DkVLpstmnzwvwr/odUiKhq4Zbp2lg0Zl
bAIxUXqTrHS5dlC0KhLNSjq3p5vp3AgzrEOVWumNNL8NVciA9w6YNXd2tFpMusKP
LOKDk5Z/+Es=
=OP2W
-----END PGP PUBLIC KEY BLOCK-----`,
			Private: `-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

lQOYBFYZni8BCAC8qbWYEOvcTefUDyRLip3NkeEApUpvMA6/OxeMmhpRWX5TEIjh
YUgfN6MlwVTOkcSkyLTrb9h2ayAq1Mj3WsiSfrxlJkLqeHvfwnMMSmsp2vsr0ZiC
ijLVFbMsE14RQs7WdTA2mAvotamUl1orl0dnl7jCa+WtrVrx1y/GeSKn2BqRhh86
9j3WYWVtzToH5Q/PM4EPAkEGHd5kW510EBVD2+BXyRZAMHHLKPTxDcuqS8+boOl5
5sxWlMeIQOkXuK5GQThLWKbxe1v/Txb1hYTR9OvcGI7hgRh3NomkxV4mh+wW7sWh
5s79HvYQRApiaamO+1I+GJiKthv1NQ68B8BpABEBAAEAB/4nIrIxgvMWTk/UkLaH
+A9vfP8WZfNImMi6WPzz1OS4Ms8OVov6arZuCVnNw2q+9gR7ZUoIW7lkqSixUdYF
X57jKqiUd+kiH8+cdUbtygMsWclIB/CxxY6xXpC+CB93h6sF2CXh8UzpH0P396SE
DdvJTLMOG5k3m5IVwDxgGLE8bS8ENxrQmilGahhDrG0dHPrQMn3aE7OzOyY4+aZf
1zY+ao16InNoThvhcRc3/iUF1YGs2pkPotAbuP8VmWDsQa0pU+NWXWbgeGMTk666
JmvB4Mg7LdnOTVrLBF0UdiPqTZrCOEnJgn5/6JlEMo7lQcYLG85N/XdcCDPsvbtk
By9dBADB98Ija/rjWYN7ZleMUjU32fa2SlmouBEZT2XMRFDzz1NuK3mYCvCVjmiB
levck5PVXQ5h/Apwo9T8RqgArpQO4574ri791Ruh/K5rUslggc1Dkwf+5bOUcZsi
tDMyxjf9VNE5LEs6QZji2F5Qhk4Tn9t/vvGdgylcaVNhEPlPRQQA+P+jTV2S5Ymk
K75a3OAbMJ/IQu5SGZDBkLJryktr6nF9rnYI0foJI6NWePm0XxEFlD2Y8oy8GeSy
J5nF8PiyocRuPBZ5xFezOeevbsq0iTPw4GNGj15ko/dPv19ZMcjSotTBzNiAdbJM
q7kxZCBsNqg74IeLsy9xEVk0dfdsXNUEAKjIqWiYrLKySuyPubBOKVrvA2jACU6N
GZqt3S8M8mFl19fqlq2BXDEBPQ7nRP2DBtZmTv8fALhDXTbG5fjOIOtgnOEhOkgM
ii+7E8QvNHP7l24WbulD3Qm3pF86g3bvgNQ3L+fypnt5xQA2J45zqFhgOrpW7p+7
xC5sDho9sDFeQWG0LUdsb3JpYSAodmNyeXB0IHRlc3Qga2V5KSA8Z2xvcmlhQGV4
YW1wbGUuY29tPokBPgQTAQIAKAUCVhmeLwIbAwUJEswDAAYLCQgHAwIGFQgCCQoL
BBYCAwECHgECF4AACgkQ9IPfu5tPcu+CRwgApxSikuUptDayVA0ozKecCxgNvhF6
fJWGWrGvrHMeELQQ09FoR0102dXPVFnH6VmAky1fak3jcJnSzB9ioVXdh9LvTkqR
xR+JKl0+H3F2YGDt9BbunTN9tEzElavoaXaeizYr8dRR0KJy8UarX18E005Yh10A
/fCf8Uz8do8njilVxt8Lqsl31/Pw/Us2XPmXxPHfV9ZYqjn8yfGSqrPmSL9hbOOE
oOtqnqCc+9XF9Soykis7jfjMXoKT4Mx0Bovg/3GYJas13R3QJNu4hf8D/YyGHlrG
PYsKNl4xrHJRHdCdLvQgZzemNZBDsMmA48JV8sEHWPFDLVw608FYslCYwZ0DmARW
GZ4vAQgAu7wtSkmB82VeW3ZE0ucF1VFJjY1RDuo5SELreB+/kaFAUuMUwk4xfR5U
STEUtVdDwVTuagFs5ElADOzi7YXSz/fppzxlMbhyJhoxDL0CY48+IzHAH1hNAAla
H1gj75+OrdLSPvTW+GBYaDZljUqIygj8Zp1v6s8mZUMjHpSDgbl6lDRPsg14f4/q
K/28SxAzCS0LRpWjD3m6EJKjFPLJ+GxQId/gUSfeEV50GkBO1TTBfubJdJIb8x3N
vrpOQd7t/GIsv5L1Qce+9RvfWL10cxyno+s5EjD41kG/DWRL3H9xVrtTaASs26PO
eWzuyDERs0KzldA+vjR/6AGwlMLWZQARAQABAAf9ElwWnM2ACzbmabDxDaQgxqoe
tJx1qS0AYaADyblnIX2g3gpNsSv2/Iq/CPJnGU35txpQf6b4iIHeZPU0wzBje8m9
vMh0CA8HANFuaxW/+k8br1Lx/E7FJwQDH44d45UZ3ceAnr4QmPVJKBXrzAvWQVXs
Izfx5keQdHZCpL629rRrA44Jj0o9g1ZPEjJAxOEBvQXIn+u87HM7RcsMTqRp/Gae
97gsHMIQlAnKy1F1rFlFq+TGFf/mnlaBR+uK/JETH3pKkYonERN5kAWlDmnLksPa
l7MVD4ag8zeeZvePt3psxkPpIf0HpP07b64ktbS+iwdp7zF+thWahA8cOHEuiQQA
wd8A4mfHWNpUdxz/9LMyahCUAGM3fySAPjr7e8XmMQ+6wf6PvQ3CMV8MjyVHqIwj
4DXMLLmctA5aQS7tCxeKtp4EBFiKZxkcBd4MR0cRCQO7hj2cxYCD9t3g54JV9irG
pfvGL/MjvxSkUAucrqghNDbHCxhMgn++Vye7Tj296XkEAPflx1QdCYyOEBX2gPYh
dNodeUCpiWyJD1LAsqPKj9UejSxOQ+6fRG3fjLndYp3inb7g78uAdCXeln1L+hTR
ZSJd7AA/TU/KNKZJkdKaJGgjLrWDb/Zs84lmkPe2mDK5Iq5jujzamFkw+tLXKHUY
Pr9ZUMqliiFBPCYl+RCQ5kVNBADlMywnB+pfvYQOfwEtV8bbvUpH8ltvDndsykBO
8cHDMThc1r0mMYsa7UVu2WFm8EHnXfxVQofV2PEtLCb9ZRfoo9Th/nP+jYrKf4YL
ff3y6OdKUWCz1LIlTMj5lTFg6Y6xpIbQECgnNUeitta6LfvHDf/N8V6ASyti2tdB
EYoA6zw6iQElBBgBAgAPBQJWGZ4vAhsMBQkSzAMAAAoJEPSD37ubT3Lvpv8H/01t
dxAV6FpIOvtCLOqQhM5nxmwaPAMtAVe7grhFw5fkGgO5O3nE0/UZnYfTxw/WQk/Y
HmH9XuQSSrGK/5QXXEgruN1cv2CbvpgpCJ8+wL9qRIAwsD0FHfLDM4ltMrBjZknz
ehuakfMLSDdzk29e9tWlyfb/nI07FbKAjCyf6EMIxCNeFAz485v+VznlKUTDAxJ0
ttQY0QWeqQztJ/SnKD+mkc7U+CpC04nlNeksoPW8DkVLpstmnzwvwr/odUiKhq4Z
bp2lg0ZlbAIxUXqTrHS5dlC0KhLNSjq3p5vp3AgzrEOVWumNNL8NVciA9w6YNXd2
tFpMusKPLOKDk5Z/+Es=
=opMh
-----END PGP PRIVATE KEY BLOCK-----
			`,
		},
	}
)
View Source
var Sealer = &sealer{rsaKeys}

Sealer is an OpenPGP sealer used for tests.

Functions

This section is empty.

Types

type Driver

type Driver map[string][]byte

Driver is a test implementation of a driver for encryption & decryption.

func (Driver) LoadMaterial

func (d Driver) LoadMaterial(id []byte) (*material.Material, error)

LoadMaterial retrieves Material data stored in d.

func (Driver) LoadSecret

func (d Driver) LoadSecret(sec secret.Secret) ([][]byte, bool, error)

LoadSecret returns the data for a Secret stored in d.

func (Driver) LockPayload

func (d Driver) LockPayload(r io.Reader) (payload.Payload, []byte, error)

LockPayload encrypts the Reader data in an Attached payload.

func (Driver) StoreMaterial

func (d Driver) StoreMaterial(mtrl *material.Material) error

StoreMaterial saves Material data to d.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL