getPublicKey method

Future<PublicKey> getPublicKey(
  1. String name, {
  2. String? publicKeyFormat,
  3. String? $fields,
})

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>);
}