test

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2021 License: MPL-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const ManifestJSON string = `` /* 2772-byte string literal not displayed */

ManifestJSON is a test manifest

View Source
const UpdateManifest = `{
	"Packages": {
		"frontend": {
			"SecurityVersion": 5
		}
	}
}`

UpdateManifest is a test update manifest

View Source
const UserSecrets = `` /* 720-byte string literal not displayed */

UserSecrets is a test JSON string to update secrets

Variables

View Source
var AdminCert = mustGenerateAdminTestCert(RecoveryPrivateKey)

AdminCert is an automatically generated test certificate used for unit tests for API features needing additional authentication.

View Source
var IntegrationManifestJSON string = `{
	"Packages": {
		"backend": {
			"Debug": true,
			"SecurityVersion": 1,
			"ProductID": 3
		},
		"frontend": {
			"Debug": true,
			"SecurityVersion": 2,
			"ProductID": 3
		}
	},
	"Infrastructures": {
		"Azure": {
			"QESVN": 2,
			"PCESVN": 3,
			"CPUSVN": [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
			"RootCA": [3,3,3]
		}
	},
	"Marbles": {
		"test_marble_server": {
			"Package": "backend",
			"Parameters": {
				"Files": {
					"/tmp/coordinator_test/defg.txt": "foo",
					"/tmp/coordinator_test/jkl.mno": "bar"
				},
				"Argv": [
					"./marble",
					"serve"
				],
				"Env": {
					"IS_FIRST": "true",
					"SEAL_KEY": "{{ hex .Marblerun.SealKey }}"
				}
			}
		},
		"test_marble_client": {
			"Package": "backend",
			"Parameters": {
				"Files": {
					"/tmp/coordinator_test/defg.txt": "foo",
					"/tmp/coordinator_test/jkl.mno": "bar"
				},
				"Env": {
					"IS_FIRST": "true",
					"SEAL_KEY": "{{ hex .Marblerun.SealKey }}"
				}
			}
		},
		"test_marble_unset": {
			"Package": "backend",
			"Parameters": {
				"Files": {
					"/tmp/coordinator_test/defg.txt": "foo",
					"/tmp/coordinator_test/jkl.mno": "bar",
					"/tmp/coordinator_test/pqr.txt": "user-defined secret: {{ hex .Secrets.symmetric_key_unset }} {{ pem .Secrets.cert_unset.Private }}"
				},
				"Env": {
					"IS_FIRST": "true",
					"SEAL_KEY": "{{ hex .Marblerun.SealKey }}"
				}
			}
		},
		"bad_marble": {
			"Package": "frontend",
			"Parameters": {
				"Files": {
					"/tmp/coordinator_test/defg.txt": "foo",
					"/tmp/coordinator_test/jkl.mno": "bar"
				},
				"Env": {
					"SEAL_KEY": "{{ hex .Marblerun.SealKey }}"
				}
			}
		}
	},
	"Clients": {
		"owner": [9,9,9]
	},
	"Secrets" :{
		"symmetric_key_shared": {
			"Size": 128,
			"Shared": true,
			"Type": "symmetric-key"
		},
		"symmetric_key_unset": {
			"Shared": true,
			"Type": "symmetric-key",
			"Size": 128,
			"UserDefined": true
		},
		"cert_unset": {
			"Shared": true,
			"Type": "cert-ed25519",
			"UserDefined": true
		}
	},
	"Users": {
		"admin": {
			"Certificate": "` + pemToJSONString(AdminCert) + `",
			"Roles": [
				"write_role",
				"read_role",
				"update_role"
			]
		}
	},
	"RecoveryKeys": {
		"testRecKey1": "` + pemToJSONString(RecoveryPublicKey) + `"
	},
	"Roles": {
		"write_role": {
			"ResourceType": "Secrets",
			"ResourceNames": [
				"symmetric_key_unset",
				"cert_unset"
			],
			"Actions": [
				"WriteSecret"
			]
		},
		"read_role": {
			"ResourceType": "Secrets",
			"ResourceNames": [
				"symmetric_key_shared"
			],
			"Actions": [
				"ReadSecret"
			]
		},
		"update_role": {
			"ResourceType": "Packages",
			"ResourceNames": [
				"frontend",
				"backend"
			],
			"Actions": [
				"UpdateSecurityVersion"
			]
		}
	}
}`

IntegrationManifestJSON is a test manifest

View Source
var ManifestJSONMissingParameters string = `` /* 398-byte string literal not displayed */

ManifestJSONMissingParameters is a test manifest

View Source
var ManifestJSONWithRecoveryKey string = `{
	"Packages": {
		"frontend": {
			"SignerID": "1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100",
			"ProductID": 44,
			"SecurityVersion": 3,
			"Debug": true
		}
	},
	"Infrastructures": {
		"Azure": {
			"QESVN": 2,
			"PCESVN": 3,
			"CPUSVN": [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
			"RootCA": [3,3,3]
		}
	},
	"Marbles": {
		"frontend": {
			"Package": "frontend",
			"Parameters": {
				"Env": {
					"SEAL_KEY": "{{ hex .Marblerun.SealKey }}"
				}
			}
		}
	},
	"Secrets": {
		"restricted_secret": {
			"Size": 128,
			"Shared": true,
			"Type": "symmetric-key"
		},
		"symmetric_key_shared": {
			"Size": 128,
			"Shared": true,
			"Type": "symmetric-key"
		},
		"symmetric_key_private": {
			"Size": 256,
			"Type": "symmetric-key"
		},
		"cert_private": {
			"Size": 2048,
			"Type": "cert-rsa",
			"Cert": {
				"SerialNumber": 42,
				"Subject": {
					"SerialNumber": "42",
					"CommonName": "Marblerun Unit Test"
				}
			},
			"ValidFor": 7
		},
		"cert_shared": {
			"Shared": true,
			"Type": "cert-ed25519",
			"Cert": {
				"SerialNumber": 1337,
				"Subject": {
					"SerialNumber": "1337",
					"CommonName": "Marblerun Unit Test"
				}
			},
			"ValidFor": 7
		},
		"symmetric_key_unset": {
			"Type": "symmetric-key",
			"Size": 128,
			"UserDefined": true
		},
		"cert_unset": {
			"Type": "cert-ed25519",
			"UserDefined": true
		},
		"generic_secret": {
			"UserDefined": true,
			"Type": "plain"
		}
	},
	"Clients": {
		"owner": [9,9,9]
	},
	"Users": {
		"admin": {
			"Certificate": "` + pemToJSONString(AdminCert) + `",
			"Roles": [
				"secret_manager",
				"read_only",
				"update_manager"
			]
		}
	},
	"RecoveryKeys": {
		"testRecKey1": "` + pemToJSONString(RecoveryPublicKey) + `"
	},
	"Roles": {
		"secret_manager": {
			"ResourceType": "Secrets",
			"ResourceNames": [
				"symmetric_key_unset",
				"cert_unset",
				"generic_secret"
			],
			"Actions": [
				"ReadSecret",
				"WriteSecret"
			]
		},
		"read_only": {
			"ResourceType": "Secrets",
			"ResourceNames": [
				"symmetric_key_shared",
				"cert_shared"
			],
			"Actions": [
				"ReadSecret"
			]
		},
		"update_manager": {
			"ResourceType": "Packages",
			"ResourceNames": [
				"frontend"
			],
			"Actions": [
				"UpdateSecurityVersion"
			]
		}
	}
}`

ManifestJSONWithRecoveryKey is a test manifest with a dynamically generated RSA key

View Source
var RecoveryPublicKey, RecoveryPrivateKey = generateTestRecoveryKey()

Functions

func MustSetupTestCerts added in v0.3.0

func MustSetupTestCerts(key *rsa.PrivateKey) (*x509.Certificate, *x509.Certificate)

MustSetupTestCerts can be used by other unit tests to test authentication features, in which one certificate matches the generated admin certificate, and the other is just a randomly generated one

Types

This section is empty.

Jump to

Keyboard shortcuts

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