///
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { SymmetricAlgorithm } from '../../../../yandex/cloud/kms/v1/symmetric_key';
export declare const protobufPackage = "yandex.cloud.kms.v1";
export interface SymmetricEncryptRequest {
/** ID of the symmetric KMS key to use for encryption. */
keyId: string;
/**
* ID of the key version to encrypt plaintext with.
* Defaults to the primary version if not specified.
*/
versionId: string;
/**
* Additional authenticated data (AAD context), optional.
* If specified, this data will be required for decryption with the [SymmetricDecryptRequest].
* Should be encoded with base64.
*/
aadContext: Buffer;
/**
* Plaintext to be encrypted.
* Should be encoded with base64.
*/
plaintext: Buffer;
}
export interface SymmetricEncryptResponse {
/** ID of the symmetric KMS key that was used for encryption. */
keyId: string;
/** ID of the key version that was used for encryption. */
versionId: string;
/** Resulting ciphertext. */
ciphertext: Buffer;
}
export interface SymmetricDecryptRequest {
/** ID of the symmetric KMS key to use for decryption. */
keyId: string;
/**
* Additional authenticated data, must be the same as was provided
* in the corresponding [SymmetricEncryptRequest].
* Should be encoded with base64.
*/
aadContext: Buffer;
/**
* Ciphertext to be decrypted.
* Should be encoded with base64.
*/
ciphertext: Buffer;
}
export interface SymmetricDecryptResponse {
/** ID of the symmetric KMS key that was used for decryption. */
keyId: string;
/** ID of the key version that was used for decryption. */
versionId: string;
/** Decrypted plaintext. */
plaintext: Buffer;
}
export interface GenerateDataKeyRequest {
/** ID of the symmetric KMS key that the generated data key should be encrypted with. */
keyId: string;
/**
* ID of the key version to encrypt the generated data key with.
* Defaults to the primary version if not specified.
*/
versionId: string;
/**
* Additional authenticated data (AAD context), optional.
* If specified, this data will be required for decryption with the [SymmetricDecryptRequest].
* Should be encoded with base64.
*/
aadContext: Buffer;
/** Encryption algorithm and key length for the generated data key. */
dataKeySpec: SymmetricAlgorithm;
/**
* If `true`, the method won't return the data key as plaintext.
* Default value is `false`.
*/
skipPlaintext: boolean;
}
export interface GenerateDataKeyResponse {
/** ID of the symmetric KMS key that was used to encrypt the generated data key. */
keyId: string;
/** ID of the key version that was used for encryption. */
versionId: string;
/**
* Generated data key as plaintext.
* The field is empty, if the [GenerateDataKeyRequest.skip_plaintext] parameter
* was set to `true`.
*/
dataKeyPlaintext: Buffer;
/** The encrypted data key. */
dataKeyCiphertext: Buffer;
}
export interface SymmetricReEncryptRequest {
/** ID of the new key to be used for encryption. */
keyId: string;
/**
* ID of the version of the new key to be used for encryption.
* Defaults to the primary version if not specified.
*/
versionId: string;
/**
* Additional authenticated data to be required for decryption.
* Should be encoded with base64.
*/
aadContext: Buffer;
/** ID of the key that the ciphertext is currently encrypted with. May be the same as for the new key. */
sourceKeyId: string;
/**
* Additional authenticated data provided with the initial encryption request.
* Should be encoded with base64.
*/
sourceAadContext: Buffer;
/**
* Ciphertext to re-encrypt.
* Should be encoded with base64.
*/
ciphertext: Buffer;
}
export interface SymmetricReEncryptResponse {
/** ID of the key that the ciphertext is encrypted with now. */
keyId: string;
/** ID of key version that was used for encryption. */
versionId: string;
/** ID of the key that the ciphertext was encrypted with previously. */
sourceKeyId: string;
/** ID of the key version that was used to decrypt the re-encrypted ciphertext. */
sourceVersionId: string;
/** Resulting re-encrypted ciphertext. */
ciphertext: Buffer;
}
export declare const SymmetricEncryptRequest: {
encode(message: SymmetricEncryptRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): SymmetricEncryptRequest;
fromJSON(object: any): SymmetricEncryptRequest;
toJSON(message: SymmetricEncryptRequest): unknown;
fromPartial, never>>(object: I): SymmetricEncryptRequest;
};
export declare const SymmetricEncryptResponse: {
encode(message: SymmetricEncryptResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): SymmetricEncryptResponse;
fromJSON(object: any): SymmetricEncryptResponse;
toJSON(message: SymmetricEncryptResponse): unknown;
fromPartial, never>>(object: I): SymmetricEncryptResponse;
};
export declare const SymmetricDecryptRequest: {
encode(message: SymmetricDecryptRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): SymmetricDecryptRequest;
fromJSON(object: any): SymmetricDecryptRequest;
toJSON(message: SymmetricDecryptRequest): unknown;
fromPartial, never>>(object: I): SymmetricDecryptRequest;
};
export declare const SymmetricDecryptResponse: {
encode(message: SymmetricDecryptResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): SymmetricDecryptResponse;
fromJSON(object: any): SymmetricDecryptResponse;
toJSON(message: SymmetricDecryptResponse): unknown;
fromPartial, never>>(object: I): SymmetricDecryptResponse;
};
export declare const GenerateDataKeyRequest: {
encode(message: GenerateDataKeyRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GenerateDataKeyRequest;
fromJSON(object: any): GenerateDataKeyRequest;
toJSON(message: GenerateDataKeyRequest): unknown;
fromPartial, never>>(object: I): GenerateDataKeyRequest;
};
export declare const GenerateDataKeyResponse: {
encode(message: GenerateDataKeyResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GenerateDataKeyResponse;
fromJSON(object: any): GenerateDataKeyResponse;
toJSON(message: GenerateDataKeyResponse): unknown;
fromPartial, never>>(object: I): GenerateDataKeyResponse;
};
export declare const SymmetricReEncryptRequest: {
encode(message: SymmetricReEncryptRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): SymmetricReEncryptRequest;
fromJSON(object: any): SymmetricReEncryptRequest;
toJSON(message: SymmetricReEncryptRequest): unknown;
fromPartial, never>>(object: I): SymmetricReEncryptRequest;
};
export declare const SymmetricReEncryptResponse: {
encode(message: SymmetricReEncryptResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): SymmetricReEncryptResponse;
fromJSON(object: any): SymmetricReEncryptResponse;
toJSON(message: SymmetricReEncryptResponse): unknown;
fromPartial, never>>(object: I): SymmetricReEncryptResponse;
};
/** Set of methods that perform symmetric encryption and decryption. */
export declare const SymmetricCryptoServiceService: {
/** Encrypts given plaintext with the specified key. */
readonly encrypt: {
readonly path: "/yandex.cloud.kms.v1.SymmetricCryptoService/Encrypt";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: SymmetricEncryptRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => SymmetricEncryptRequest;
readonly responseSerialize: (value: SymmetricEncryptResponse) => Buffer;
readonly responseDeserialize: (value: Buffer) => SymmetricEncryptResponse;
};
/** Decrypts the given ciphertext with the specified key. */
readonly decrypt: {
readonly path: "/yandex.cloud.kms.v1.SymmetricCryptoService/Decrypt";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: SymmetricDecryptRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => SymmetricDecryptRequest;
readonly responseSerialize: (value: SymmetricDecryptResponse) => Buffer;
readonly responseDeserialize: (value: Buffer) => SymmetricDecryptResponse;
};
/** Re-encrypts a ciphertext with the specified KMS key. */
readonly reEncrypt: {
readonly path: "/yandex.cloud.kms.v1.SymmetricCryptoService/ReEncrypt";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: SymmetricReEncryptRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => SymmetricReEncryptRequest;
readonly responseSerialize: (value: SymmetricReEncryptResponse) => Buffer;
readonly responseDeserialize: (value: Buffer) => SymmetricReEncryptResponse;
};
/**
* Generates a new symmetric data encryption key (not a KMS key) and returns
* the generated key as plaintext and as ciphertext encrypted with the specified symmetric KMS key.
*/
readonly generateDataKey: {
readonly path: "/yandex.cloud.kms.v1.SymmetricCryptoService/GenerateDataKey";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: GenerateDataKeyRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => GenerateDataKeyRequest;
readonly responseSerialize: (value: GenerateDataKeyResponse) => Buffer;
readonly responseDeserialize: (value: Buffer) => GenerateDataKeyResponse;
};
};
export interface SymmetricCryptoServiceServer extends UntypedServiceImplementation {
/** Encrypts given plaintext with the specified key. */
encrypt: handleUnaryCall;
/** Decrypts the given ciphertext with the specified key. */
decrypt: handleUnaryCall;
/** Re-encrypts a ciphertext with the specified KMS key. */
reEncrypt: handleUnaryCall;
/**
* Generates a new symmetric data encryption key (not a KMS key) and returns
* the generated key as plaintext and as ciphertext encrypted with the specified symmetric KMS key.
*/
generateDataKey: handleUnaryCall;
}
export interface SymmetricCryptoServiceClient extends Client {
/** Encrypts given plaintext with the specified key. */
encrypt(request: SymmetricEncryptRequest, callback: (error: ServiceError | null, response: SymmetricEncryptResponse) => void): ClientUnaryCall;
encrypt(request: SymmetricEncryptRequest, metadata: Metadata, callback: (error: ServiceError | null, response: SymmetricEncryptResponse) => void): ClientUnaryCall;
encrypt(request: SymmetricEncryptRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: SymmetricEncryptResponse) => void): ClientUnaryCall;
/** Decrypts the given ciphertext with the specified key. */
decrypt(request: SymmetricDecryptRequest, callback: (error: ServiceError | null, response: SymmetricDecryptResponse) => void): ClientUnaryCall;
decrypt(request: SymmetricDecryptRequest, metadata: Metadata, callback: (error: ServiceError | null, response: SymmetricDecryptResponse) => void): ClientUnaryCall;
decrypt(request: SymmetricDecryptRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: SymmetricDecryptResponse) => void): ClientUnaryCall;
/** Re-encrypts a ciphertext with the specified KMS key. */
reEncrypt(request: SymmetricReEncryptRequest, callback: (error: ServiceError | null, response: SymmetricReEncryptResponse) => void): ClientUnaryCall;
reEncrypt(request: SymmetricReEncryptRequest, metadata: Metadata, callback: (error: ServiceError | null, response: SymmetricReEncryptResponse) => void): ClientUnaryCall;
reEncrypt(request: SymmetricReEncryptRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: SymmetricReEncryptResponse) => void): ClientUnaryCall;
/**
* Generates a new symmetric data encryption key (not a KMS key) and returns
* the generated key as plaintext and as ciphertext encrypted with the specified symmetric KMS key.
*/
generateDataKey(request: GenerateDataKeyRequest, callback: (error: ServiceError | null, response: GenerateDataKeyResponse) => void): ClientUnaryCall;
generateDataKey(request: GenerateDataKeyRequest, metadata: Metadata, callback: (error: ServiceError | null, response: GenerateDataKeyResponse) => void): ClientUnaryCall;
generateDataKey(request: GenerateDataKeyRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: GenerateDataKeyResponse) => void): ClientUnaryCall;
}
export declare const SymmetricCryptoServiceClient: {
new (address: string, credentials: ChannelCredentials, options?: Partial): SymmetricCryptoServiceClient;
service: typeof SymmetricCryptoServiceService;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? {
[K in keyof T]?: DeepPartial;
} : Partial;
type KeysOfUnion = T extends T ? keyof T : never;
export type Exact
= P extends Builtin ? P : P & {
[K in keyof P]: Exact