Class CryptoReplaceFfxFpeConfig

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
com.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig
All Implemented Interfaces:
CryptoReplaceFfxFpeConfigOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Serializable

@Generated public final class CryptoReplaceFfxFpeConfig extends com.google.protobuf.GeneratedMessage implements CryptoReplaceFfxFpeConfigOrBuilder
 Replaces an identifier with a surrogate using Format Preserving Encryption
 (FPE) with the FFX mode of operation; however when used in the
 `ReidentifyContent` API method, it serves the opposite function by reversing
 the surrogate back into the original identifier. The identifier must be
 encoded as ASCII. For a given crypto key and context, the same identifier
 will be replaced with the same surrogate. Identifiers must be at least two
 characters long. In the case that the identifier is the empty string, it will
 be skipped. See
 https://cloud.google.com/sensitive-data-protection/docs/pseudonymization to
 learn more.

 Note: We recommend using  CryptoDeterministicConfig for all use cases which
 do not require preserving the input alphabet space and size, plus warrant
 referential integrity. FPE incurs significant latency costs.
 
Protobuf type google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig
See Also:
  • Field Details

    • CRYPTO_KEY_FIELD_NUMBER

      public static final int CRYPTO_KEY_FIELD_NUMBER
      See Also:
    • CONTEXT_FIELD_NUMBER

      public static final int CONTEXT_FIELD_NUMBER
      See Also:
    • COMMON_ALPHABET_FIELD_NUMBER

      public static final int COMMON_ALPHABET_FIELD_NUMBER
      See Also:
    • CUSTOM_ALPHABET_FIELD_NUMBER

      public static final int CUSTOM_ALPHABET_FIELD_NUMBER
      See Also:
    • RADIX_FIELD_NUMBER

      public static final int RADIX_FIELD_NUMBER
      See Also:
    • SURROGATE_INFO_TYPE_FIELD_NUMBER

      public static final int SURROGATE_INFO_TYPE_FIELD_NUMBER
      See Also:
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • getAlphabetCase

      public CryptoReplaceFfxFpeConfig.AlphabetCase getAlphabetCase()
      Specified by:
      getAlphabetCase in interface CryptoReplaceFfxFpeConfigOrBuilder
    • hasCryptoKey

      public boolean hasCryptoKey()
       Required. The key used by the encryption algorithm.
       
      .google.privacy.dlp.v2.CryptoKey crypto_key = 1 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      hasCryptoKey in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      Whether the cryptoKey field is set.
    • getCryptoKey

      public CryptoKey getCryptoKey()
       Required. The key used by the encryption algorithm.
       
      .google.privacy.dlp.v2.CryptoKey crypto_key = 1 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      getCryptoKey in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      The cryptoKey.
    • getCryptoKeyOrBuilder

      public CryptoKeyOrBuilder getCryptoKeyOrBuilder()
       Required. The key used by the encryption algorithm.
       
      .google.privacy.dlp.v2.CryptoKey crypto_key = 1 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      getCryptoKeyOrBuilder in interface CryptoReplaceFfxFpeConfigOrBuilder
    • hasContext

      public boolean hasContext()
       The 'tweak', a context may be used for higher security since the same
       identifier in two different contexts won't be given the same surrogate. If
       the context is not set, a default tweak will be used.
      
       If the context is set but:
      
       1. there is no record present when transforming a given value or
       1. the field is not present when transforming a given value,
      
       a default tweak will be used.
      
       Note that case (1) is expected when an `InfoTypeTransformation` is
       applied to both structured and unstructured `ContentItem`s.
       Currently, the referenced field may be of value type integer or string.
      
       The tweak is constructed as a sequence of bytes in big endian byte order
       such that:
      
       - a 64 bit integer is encoded followed by a single byte of value 1
       - a string is encoded in UTF-8 format followed by a single byte of value 2
       
      .google.privacy.dlp.v2.FieldId context = 2;
      Specified by:
      hasContext in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      Whether the context field is set.
    • getContext

      public FieldId getContext()
       The 'tweak', a context may be used for higher security since the same
       identifier in two different contexts won't be given the same surrogate. If
       the context is not set, a default tweak will be used.
      
       If the context is set but:
      
       1. there is no record present when transforming a given value or
       1. the field is not present when transforming a given value,
      
       a default tweak will be used.
      
       Note that case (1) is expected when an `InfoTypeTransformation` is
       applied to both structured and unstructured `ContentItem`s.
       Currently, the referenced field may be of value type integer or string.
      
       The tweak is constructed as a sequence of bytes in big endian byte order
       such that:
      
       - a 64 bit integer is encoded followed by a single byte of value 1
       - a string is encoded in UTF-8 format followed by a single byte of value 2
       
      .google.privacy.dlp.v2.FieldId context = 2;
      Specified by:
      getContext in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      The context.
    • getContextOrBuilder

      public FieldIdOrBuilder getContextOrBuilder()
       The 'tweak', a context may be used for higher security since the same
       identifier in two different contexts won't be given the same surrogate. If
       the context is not set, a default tweak will be used.
      
       If the context is set but:
      
       1. there is no record present when transforming a given value or
       1. the field is not present when transforming a given value,
      
       a default tweak will be used.
      
       Note that case (1) is expected when an `InfoTypeTransformation` is
       applied to both structured and unstructured `ContentItem`s.
       Currently, the referenced field may be of value type integer or string.
      
       The tweak is constructed as a sequence of bytes in big endian byte order
       such that:
      
       - a 64 bit integer is encoded followed by a single byte of value 1
       - a string is encoded in UTF-8 format followed by a single byte of value 2
       
      .google.privacy.dlp.v2.FieldId context = 2;
      Specified by:
      getContextOrBuilder in interface CryptoReplaceFfxFpeConfigOrBuilder
    • hasCommonAlphabet

      public boolean hasCommonAlphabet()
       Common alphabets.
       
      .google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet common_alphabet = 4;
      Specified by:
      hasCommonAlphabet in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      Whether the commonAlphabet field is set.
    • getCommonAlphabetValue

      public int getCommonAlphabetValue()
       Common alphabets.
       
      .google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet common_alphabet = 4;
      Specified by:
      getCommonAlphabetValue in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      The enum numeric value on the wire for commonAlphabet.
    • getCommonAlphabet

       Common alphabets.
       
      .google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet common_alphabet = 4;
      Specified by:
      getCommonAlphabet in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      The commonAlphabet.
    • hasCustomAlphabet

      public boolean hasCustomAlphabet()
       This is supported by mapping these to the alphanumeric characters
       that the FFX mode natively supports. This happens before/after
       encryption/decryption.
       Each character listed must appear only once.
       Number of characters must be in the range [2, 95].
       This must be encoded as ASCII.
       The order of characters does not matter.
       The full list of allowed characters is:
       ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/``
       
      string custom_alphabet = 5;
      Specified by:
      hasCustomAlphabet in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      Whether the customAlphabet field is set.
    • getCustomAlphabet

      public String getCustomAlphabet()
       This is supported by mapping these to the alphanumeric characters
       that the FFX mode natively supports. This happens before/after
       encryption/decryption.
       Each character listed must appear only once.
       Number of characters must be in the range [2, 95].
       This must be encoded as ASCII.
       The order of characters does not matter.
       The full list of allowed characters is:
       ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/``
       
      string custom_alphabet = 5;
      Specified by:
      getCustomAlphabet in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      The customAlphabet.
    • getCustomAlphabetBytes

      public com.google.protobuf.ByteString getCustomAlphabetBytes()
       This is supported by mapping these to the alphanumeric characters
       that the FFX mode natively supports. This happens before/after
       encryption/decryption.
       Each character listed must appear only once.
       Number of characters must be in the range [2, 95].
       This must be encoded as ASCII.
       The order of characters does not matter.
       The full list of allowed characters is:
       ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/``
       
      string custom_alphabet = 5;
      Specified by:
      getCustomAlphabetBytes in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      The bytes for customAlphabet.
    • hasRadix

      public boolean hasRadix()
       The native way to select the alphabet. Must be in the range [2, 95].
       
      int32 radix = 6;
      Specified by:
      hasRadix in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      Whether the radix field is set.
    • getRadix

      public int getRadix()
       The native way to select the alphabet. Must be in the range [2, 95].
       
      int32 radix = 6;
      Specified by:
      getRadix in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      The radix.
    • hasSurrogateInfoType

      public boolean hasSurrogateInfoType()
       The custom infoType to annotate the surrogate with.
       This annotation will be applied to the surrogate by prefixing it with
       the name of the custom infoType 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 infoType 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 infoType
       [`SurrogateType`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype).
       This facilitates reversal of the surrogate when it occurs in free text.
      
       In order for inspection to work properly, the name of this infoType must
       not occur naturally anywhere in your data; otherwise, inspection may
       find a surrogate that does not correspond to an actual identifier.
       Therefore, choose your custom infoType 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 = 8;
      Specified by:
      hasSurrogateInfoType in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      Whether the surrogateInfoType field is set.
    • getSurrogateInfoType

      public InfoType getSurrogateInfoType()
       The custom infoType to annotate the surrogate with.
       This annotation will be applied to the surrogate by prefixing it with
       the name of the custom infoType 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 infoType 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 infoType
       [`SurrogateType`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype).
       This facilitates reversal of the surrogate when it occurs in free text.
      
       In order for inspection to work properly, the name of this infoType must
       not occur naturally anywhere in your data; otherwise, inspection may
       find a surrogate that does not correspond to an actual identifier.
       Therefore, choose your custom infoType 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 = 8;
      Specified by:
      getSurrogateInfoType in interface CryptoReplaceFfxFpeConfigOrBuilder
      Returns:
      The surrogateInfoType.
    • getSurrogateInfoTypeOrBuilder

      public InfoTypeOrBuilder getSurrogateInfoTypeOrBuilder()
       The custom infoType to annotate the surrogate with.
       This annotation will be applied to the surrogate by prefixing it with
       the name of the custom infoType 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 infoType 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 infoType
       [`SurrogateType`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype).
       This facilitates reversal of the surrogate when it occurs in free text.
      
       In order for inspection to work properly, the name of this infoType must
       not occur naturally anywhere in your data; otherwise, inspection may
       find a surrogate that does not correspond to an actual identifier.
       Therefore, choose your custom infoType 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 = 8;
      Specified by:
      getSurrogateInfoTypeOrBuilder in interface CryptoReplaceFfxFpeConfigOrBuilder
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class com.google.protobuf.GeneratedMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessage
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface com.google.protobuf.Message
      Overrides:
      equals in class com.google.protobuf.AbstractMessage
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface com.google.protobuf.Message
      Overrides:
      hashCode in class com.google.protobuf.AbstractMessage
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static CryptoReplaceFfxFpeConfig parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static CryptoReplaceFfxFpeConfig parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static CryptoReplaceFfxFpeConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilderForType

      public CryptoReplaceFfxFpeConfig.Builder newBuilderForType()
      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

      public static CryptoReplaceFfxFpeConfig.Builder newBuilder()
    • newBuilder

      public static CryptoReplaceFfxFpeConfig.Builder newBuilder(CryptoReplaceFfxFpeConfig prototype)
    • toBuilder

      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected CryptoReplaceFfxFpeConfig.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

      public static CryptoReplaceFfxFpeConfig getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<CryptoReplaceFfxFpeConfig> parser()
    • getParserForType

      public com.google.protobuf.Parser<CryptoReplaceFfxFpeConfig> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessage
    • getDefaultInstanceForType

      public CryptoReplaceFfxFpeConfig getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder