getPublicKey method
Returns the public key for the given CryptoKeyVersion.
The CryptoKey.purpose must be ASYMMETRIC_SIGN or ASYMMETRIC_DECRYPT.
Request parameters:
name
- Required. The name of the CryptoKeyVersion public key to get.
Value must have pattern
^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+/cryptoKeyVersions/\[^/\]+$
.
publicKeyFormat
- Optional. The PublicKey format specified by the user.
This field is required for PQC algorithms. If specified, the public key
will be exported through the public_key field in the requested format.
Otherwise, the pem field will be populated for non-PQC algorithms, and an
error will be returned for PQC algorithms.
Possible string values are:
- "PUBLIC_KEY_FORMAT_UNSPECIFIED" : If the public_key_format field is not specified: - For PQC algorithms, an error will be returned. - For non-PQC algorithms, the default format is PEM, and the field pem will be populated. Otherwise, the public key will be exported through the public_key field in the requested format.
- "PEM" : The returned public key will be encoded in PEM format. See the RFC7468 sections for General Considerations and Textual Encoding of Subject Public Key Info for more information.
- "NIST_PQC" : This is supported only for PQC algorithms. The key material is returned in the format defined by NIST PQC standards (FIPS 203, FIPS 204, and FIPS 205).
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a PublicKey.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<PublicKey> getPublicKey(
core.String name, {
core.String? publicKeyFormat,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
if (publicKeyFormat != null) 'publicKeyFormat': [publicKeyFormat],
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/publicKey';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return PublicKey.fromJson(response_ as core.Map<core.String, core.dynamic>);
}