Get a key
Obtain an access key
Use the vault to retrieve public key material and any associated metadata.
Get the current key version
If no key version is specified, the current key version will be retrieved.
import os
import pangea.exceptions as pe
from pangea.config import PangeaConfig
from pangea.services import Vault
from pangea.services.vault.models.common import EncodedPublicKey
def get_key(key_id: str) -> EncodedPublicKey:
token = os.getenv("PANGEA_VAULT_TOKEN")
domain = os.getenv("PANGEA_DOMAIN")
config = PangeaConfig(domain=domain)
vault = Vault(token, config=config)
try:
# If no version is specified, then the current version is returned.
response = vault.get(key_id)
except pe.PangeaAPIException as e:
print(f"Vault Request Error: {e.response.summary}")
for err in e.errors:
print(f"\t{err.detail} \n")
else:
return response.result.current_version.public_key
Get a specific key version
It may be useful to get a specific key version to decrypt data or verify a signature signed with an earlier key version.
import os
import pangea.exceptions as pe
from pangea.config import PangeaConfig
from pangea.services import Vault
def get_key_version(key_id, version):
token = os.getenv("PANGEA_VAULT_TOKEN")
domain = os.getenv("PANGEA_DOMAIN")
config = PangeaConfig(domain=domain)
vault = Vault(token, config=config)
try:
# specify a version
response = vault.get(key_id, version)
except pe.PangeaAPIException as e:
print(f"Vault Request Error: {e.response.summary}")
for err in e.errors:
print(f"\t{err.detail} \n")
# specify a version index, as more than one version can be returned
return response.result.versions[0].public_key
Was this article helpful?