com.impinj.octane

## Class TagImpinjAuthenticateOp

- java.lang.Object
- - com.impinj.octane.TagOp
  - - com.impinj.octane.AbstractTagAuthenticateOp
    - - com.impinj.octane.TagImpinjAuthenticateOp

-     public class TagImpinjAuthenticateOp
      extends AbstractTagAuthenticateOp

- - ### Field Summary

    - ### Fields inherited from class com.impinj.octane.TagOp

      `Id`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TagImpinjAuthenticateOp()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte` | `getCsi()` Cypher suite index is unchangeable and is 1 to indicate usage of the "Present" algorithm
    `boolean` | `getIncludeReplyLen()` A value of false (bit = 0) is unchangeable.
    `boolean` | `getIncludeTidInReply()` Whether to include "short" TID, where "short" means: a TID with words 0 and 2 omitted
    `org.llrp.ltk.types.BitArray_HEX` | `getMessageIncludingHeader()` Return the complete message payload (all 48 bits), including the dynamically generated header
    `boolean` | `getSendReply()` A value of true (bit = 1) is unchangeable.
    `void` | `setAccessPassword(TagData accessPassword)` Access Password [optional]
    `void` | `setChallengeMessage(TagData challengeMessage)` The user-provided 48-bit clear text message to be sent to the tag to encrypt For ImpinjTagAuthenticate, the clear text message is 42 bits, preceded by a fixed header whose 6th bit indicates if the tag should add the "short" TID in its reply.
    `protected void` | `setCsi(byte csi)`
    `protected void` | `setIncludeReplyLen(boolean includeReplyLen)`
    `void` | `setIncludeTidInReply(boolean includeTid)`
    `protected void` | `setSendReply(boolean sendReply)`

    - ### Methods inherited from class com.impinj.octane.AbstractTagAuthenticateOp

      `getAccessPassword, getChallengeMessage`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TagImpinjAuthenticateOp

          public TagImpinjAuthenticateOp()

  - ### Method Detail

    - #### setAccessPassword

          public void setAccessPassword(TagData accessPassword)
                                 throws OctaneSdkException

      Access Password [optional]
      Overrides:
        `setAccessPassword` in class `AbstractTagAuthenticateOp`
      Throws:
        `OctaneSdkException`

    - #### getSendReply

          public boolean getSendReply()

      A value of true (bit = 1) is unchangeable. In other cyphers, the tag may take a long time to encrypt and would have to be revisited to retrieve its crypto results
      Overrides:
        `getSendReply` in class `AbstractTagAuthenticateOp`
      Returns:
        boolean - true

    - #### setSendReply

          protected void setSendReply(boolean sendReply)
                               throws OctaneSdkException

      Specified by:
        `setSendReply` in class `AbstractTagAuthenticateOp`
      Throws:
        `OctaneSdkException`

    - #### getIncludeReplyLen

          public boolean getIncludeReplyLen()

      A value of false (bit = 0) is unchangeable. If asserted (in other tags), it commands tags to include the length in the reply
      Overrides:
        `getIncludeReplyLen` in class `AbstractTagAuthenticateOp`
      Returns:
        boolean - false

    - #### setIncludeReplyLen

          protected void setIncludeReplyLen(boolean includeReplyLen)
                                     throws OctaneSdkException

      Specified by:
        `setIncludeReplyLen` in class `AbstractTagAuthenticateOp`
      Throws:
        `OctaneSdkException`

    - #### getCsi

          public byte getCsi()

      Cypher suite index is unchangeable and is 1 to indicate usage of the "Present" algorithm
      Overrides:
        `getCsi` in class `AbstractTagAuthenticateOp`
      Returns:
        byte - 1

    - #### setCsi

          protected void setCsi(byte csi)
                         throws OctaneSdkException

      Specified by:
        `setCsi` in class `AbstractTagAuthenticateOp`
      Throws:
        `OctaneSdkException`

    - #### getIncludeTidInReply

          public boolean getIncludeTidInReply()

      Whether to include "short" TID, where "short" means: a TID with words 0 and 2 omitted
      Returns:
        boolean - true or false

    - #### setIncludeTidInReply

          public void setIncludeTidInReply(boolean includeTid)

    - #### setChallengeMessage

          public void setChallengeMessage(TagData challengeMessage)
                                   throws OctaneSdkException

      The user-provided 48-bit clear text message to be sent to the tag to encrypt For ImpinjTagAuthenticate, the clear text message is 42 bits, preceded by a fixed header whose 6th bit indicates if the tag should add the "short" TID in its reply. Here we accept a 48-bit TagData, but not that we will overwrite bits 1 through 6 when generating the header.
      Overrides:
        `setChallengeMessage` in class `AbstractTagAuthenticateOp`
      Throws:
        `OctaneSdkException`

    - #### getMessageIncludingHeader

          public org.llrp.ltk.types.BitArray_HEX getMessageIncludingHeader()
                                                                    throws OctaneSdkException

      Return the complete message payload (all 48 bits), including the dynamically generated header
      Returns:
        BitArray_HEX - message payload
      Throws:
        `OctaneSdkException` - - if challenge message is null