Class CryptoDeterministicConfig (3.32.0)

public final class CryptoDeterministicConfig extends GeneratedMessageV3 implements CryptoDeterministicConfigOrBuilder

Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.

Protobuf type google.privacy.dlp.v2.CryptoDeterministicConfig

Static Fields

CONTEXT_FIELD_NUMBER

public static final int CONTEXT_FIELD_NUMBER
Field Value
TypeDescription
int

CRYPTO_KEY_FIELD_NUMBER

public static final int CRYPTO_KEY_FIELD_NUMBER
Field Value
TypeDescription
int

SURROGATE_INFO_TYPE_FIELD_NUMBER

public static final int SURROGATE_INFO_TYPE_FIELD_NUMBER
Field Value
TypeDescription
int

Static Methods

getDefaultInstance()

public static CryptoDeterministicConfig getDefaultInstance()
Returns
TypeDescription
CryptoDeterministicConfig

getDescriptor()

public static final Descriptors.Descriptor getDescriptor()
Returns
TypeDescription
Descriptor

newBuilder()

public static CryptoDeterministicConfig.Builder newBuilder()
Returns
TypeDescription
CryptoDeterministicConfig.Builder

newBuilder(CryptoDeterministicConfig prototype)

public static CryptoDeterministicConfig.Builder newBuilder(CryptoDeterministicConfig prototype)
Parameter
NameDescription
prototypeCryptoDeterministicConfig
Returns
TypeDescription
CryptoDeterministicConfig.Builder

parseDelimitedFrom(InputStream input)

public static CryptoDeterministicConfig parseDelimitedFrom(InputStream input)
Parameter
NameDescription
inputInputStream
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
IOException

parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static CryptoDeterministicConfig parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
IOException

parseFrom(byte[] data)

public static CryptoDeterministicConfig parseFrom(byte[] data)
Parameter
NameDescription
databyte[]
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)

public static CryptoDeterministicConfig parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
databyte[]
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteString data)

public static CryptoDeterministicConfig parseFrom(ByteString data)
Parameter
NameDescription
dataByteString
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)

public static CryptoDeterministicConfig parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
dataByteString
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(CodedInputStream input)

public static CryptoDeterministicConfig parseFrom(CodedInputStream input)
Parameter
NameDescription
inputCodedInputStream
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
IOException

parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public static CryptoDeterministicConfig parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputCodedInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
IOException

parseFrom(InputStream input)

public static CryptoDeterministicConfig parseFrom(InputStream input)
Parameter
NameDescription
inputInputStream
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
IOException

parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static CryptoDeterministicConfig parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
IOException

parseFrom(ByteBuffer data)

public static CryptoDeterministicConfig parseFrom(ByteBuffer data)
Parameter
NameDescription
dataByteBuffer
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)

public static CryptoDeterministicConfig parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
dataByteBuffer
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
CryptoDeterministicConfig
Exceptions
TypeDescription
InvalidProtocolBufferException

parser()

public static Parser<CryptoDeterministicConfig> parser()
Returns
TypeDescription
Parser<CryptoDeterministicConfig>

Methods

equals(Object obj)

public boolean equals(Object obj)
Parameter
NameDescription
objObject
Returns
TypeDescription
boolean
Overrides

getContext()

public FieldId getContext()

A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well.

If the context is not set, plaintext would be used as is for encryption. If the context is set but:

  1. there is no record present when transforming a given value or
  2. the field is not present when transforming a given value,

    plaintext would be used as is for encryption.

    Note that case (1) is expected when an InfoTypeTransformation is applied to both structured and unstructured ContentItems.

.google.privacy.dlp.v2.FieldId context = 3;

Returns
TypeDescription
FieldId

The context.

getContextOrBuilder()

public FieldIdOrBuilder getContextOrBuilder()

A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well.

If the context is not set, plaintext would be used as is for encryption. If the context is set but:

  1. there is no record present when transforming a given value or
  2. the field is not present when transforming a given value,

    plaintext would be used as is for encryption.

    Note that case (1) is expected when an InfoTypeTransformation is applied to both structured and unstructured ContentItems.

.google.privacy.dlp.v2.FieldId context = 3;

Returns
TypeDescription
FieldIdOrBuilder

getCryptoKey()

public CryptoKey getCryptoKey()

The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.

.google.privacy.dlp.v2.CryptoKey crypto_key = 1;

Returns
TypeDescription
CryptoKey

The cryptoKey.

getCryptoKeyOrBuilder()

public CryptoKeyOrBuilder getCryptoKeyOrBuilder()

The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.

.google.privacy.dlp.v2.CryptoKey crypto_key = 1;

Returns
TypeDescription
CryptoKeyOrBuilder

getDefaultInstanceForType()

public CryptoDeterministicConfig getDefaultInstanceForType()
Returns
TypeDescription
CryptoDeterministicConfig

getParserForType()

public Parser<CryptoDeterministicConfig> getParserForType()
Returns
TypeDescription
Parser<CryptoDeterministicConfig>
Overrides

getSerializedSize()

public int getSerializedSize()
Returns
TypeDescription
int
Overrides

getSurrogateInfoType()

public InfoType getSurrogateInfoType()

The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate}

For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc'

This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text.

Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text.

In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either

  • reverse a surrogate that does not correspond to an actual identifier
  • be unable to parse the surrogate and result in an error

    Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.

.google.privacy.dlp.v2.InfoType surrogate_info_type = 2;

Returns
TypeDescription
InfoType

The surrogateInfoType.

getSurrogateInfoTypeOrBuilder()

public InfoTypeOrBuilder getSurrogateInfoTypeOrBuilder()

The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate}

For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc'

This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text.

Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text.

In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either

  • reverse a surrogate that does not correspond to an actual identifier
  • be unable to parse the surrogate and result in an error

    Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.

.google.privacy.dlp.v2.InfoType surrogate_info_type = 2;

Returns
TypeDescription
InfoTypeOrBuilder

hasContext()

public boolean hasContext()

A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well.

If the context is not set, plaintext would be used as is for encryption. If the context is set but:

  1. there is no record present when transforming a given value or
  2. the field is not present when transforming a given value,

    plaintext would be used as is for encryption.

    Note that case (1) is expected when an InfoTypeTransformation is applied to both structured and unstructured ContentItems.

.google.privacy.dlp.v2.FieldId context = 3;

Returns
TypeDescription
boolean

Whether the context field is set.

hasCryptoKey()

public boolean hasCryptoKey()

The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.

.google.privacy.dlp.v2.CryptoKey crypto_key = 1;

Returns
TypeDescription
boolean

Whether the cryptoKey field is set.

hasSurrogateInfoType()

public boolean hasSurrogateInfoType()

The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate}

For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc'

This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text.

Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text.

In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either

  • reverse a surrogate that does not correspond to an actual identifier
  • be unable to parse the surrogate and result in an error

    Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.

.google.privacy.dlp.v2.InfoType surrogate_info_type = 2;

Returns
TypeDescription
boolean

Whether the surrogateInfoType field is set.

hashCode()

public int hashCode()
Returns
TypeDescription
int
Overrides

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
TypeDescription
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
TypeDescription
boolean
Overrides

newBuilderForType()

public CryptoDeterministicConfig.Builder newBuilderForType()
Returns
TypeDescription
CryptoDeterministicConfig.Builder

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected CryptoDeterministicConfig.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Parameter
NameDescription
parentBuilderParent
Returns
TypeDescription
CryptoDeterministicConfig.Builder
Overrides

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Parameter
NameDescription
unusedUnusedPrivateParameter
Returns
TypeDescription
Object
Overrides

toBuilder()

public CryptoDeterministicConfig.Builder toBuilder()
Returns
TypeDescription
CryptoDeterministicConfig.Builder

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)
Parameter
NameDescription
outputCodedOutputStream
Overrides
Exceptions
TypeDescription
IOException