Class AID


  • public class AID
    extends Object
    This class encapsulates the Application Identifier (AID) associated with an applet. An AID is defined in ISO 7816-5 to be a sequence of bytes between 5 and 16 bytes in length.

    The Java Card runtime environment creates instances of AID class to identify and manage every applet on the card. Applets need not create instances of this class. An applet may request and use the Java Card runtime environment-owned instances to identify itself and other applet instances.

    Java Card runtime environment-owned instances of AID are permanent Java Card runtime environment Entry Point Objects and can be accessed from any applet context. References to these permanent objects can be stored and re-used.

    An applet instance can obtain a reference to Java Card runtime environment-owned instances of its own AID object by using the JCSystem.getAID() method and another applet's AID object via the JCSystem.lookupAID() method.

    An applet uses AID instances to request to share another applet's object or to control access to its own shared object from another applet. See Runtime Environment Specification, Java Card Platform, Classic Edition, section 6.2 for details.

    See Also:
    JCSystem, SystemException
    • Constructor Summary

      Constructors 
      Constructor Description
      AID​(byte[] bArray, short offset, byte length)
      The Java Card runtime environment uses this constructor to create a new AID instance encapsulating the specified AID bytes.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(byte[] bArray, short offset, byte length)
      Checks if the specified AID bytes in bArray are the same as those encapsulated in this AID object.
      boolean equals​(Object anObject)
      Compares the AID bytes in this AID instance to the AID bytes in the specified object.
      byte getBytes​(byte[] dest, short offset)
      Called to get all the AID bytes encapsulated within AID object.
      byte getPartialBytes​(short aidOffset, byte[] dest, short oOffset, byte oLength)
      Called to get part of the AID bytes encapsulated within the AID object starting at the specified offset for the specified length.
      boolean partialEquals​(byte[] bArray, short offset, byte length)
      Checks if the specified partial AID byte sequence matches the first length bytes of the encapsulated AID bytes within this AID object.
      boolean RIDEquals​(AID otherAID)
      Checks if the RID (National Registered Application provider identifier) portion of the encapsulated AID bytes within the otherAID object matches that of this AID object.
    • Constructor Detail

      • AID

        public AID​(byte[] bArray,
                   short offset,
                   byte length)
            throws SystemException,
                   NullPointerException,
                   ArrayIndexOutOfBoundsException,
                   SecurityException
        The Java Card runtime environment uses this constructor to create a new AID instance encapsulating the specified AID bytes.
        Parameters:
        bArray - the byte array containing the AID bytes
        offset - the start of AID bytes in bArray
        length - the length of the AID bytes in bArray
        Throws:
        SecurityException - if the bArray array is not accessible in the caller's context
        SystemException - with the following reason code:
        • SystemException.ILLEGAL_VALUE if the length parameter is less than 5 or greater than 16
        NullPointerException - if the bArray parameter is null
        ArrayIndexOutOfBoundsException - if the offset parameter or length parameter is negative or if offset+length is greater than the length of the bArray parameter
    • Method Detail

      • equals

        public final boolean equals​(Object anObject)
                             throws SecurityException
        Compares the AID bytes in this AID instance to the AID bytes in the specified object. The result is true if and only if the argument is not null and is an AID object that encapsulates the same AID bytes as this object.

        This method does not throw NullPointerException.

        In addition to returning a boolean result, this method sets the result in an internal state which can be rechecked using assertion methods of the SensitiveResult class, if supported by the platform.

        Overrides:
        equals in class Object
        Parameters:
        anObject - the object to compare this AID against
        Returns:
        true if the AID byte values are equal, false otherwise
        Throws:
        SecurityException - if anObject object is not accessible in the caller's context
      • equals

        public final boolean equals​(byte[] bArray,
                                    short offset,
                                    byte length)
                             throws ArrayIndexOutOfBoundsException,
                                    SecurityException
        Checks if the specified AID bytes in bArray are the same as those encapsulated in this AID object. The result is true if and only if the bArray argument is not null and the AID bytes encapsulated in this AID object are equal to the specified AID bytes in bArray.

        This method does not throw NullPointerException.

        In addition to returning a boolean result, this method sets the result in an internal state which can be rechecked using assertion methods of the SensitiveResult class, if supported by the platform.

        Parameters:
        bArray - containing the AID bytes
        offset - within bArray to begin
        length - of AID bytes in bArray
        Returns:
        true if equal, false otherwise
        Throws:
        SecurityException - if the bArray array is not accessible in the caller's context
        ArrayIndexOutOfBoundsException - if the offset parameter or length parameter is negative or if offset+length is greater than the length of the bArray parameter
      • partialEquals

        public final boolean partialEquals​(byte[] bArray,
                                           short offset,
                                           byte length)
                                    throws ArrayIndexOutOfBoundsException,
                                           SecurityException
        Checks if the specified partial AID byte sequence matches the first length bytes of the encapsulated AID bytes within this AID object. The result is true if and only if the bArray argument is not null and the input length is less than or equal to the length of the encapsulated AID bytes within this AID object and the specified bytes match.

        This method does not throw NullPointerException.

        In addition to returning a boolean result, this method sets the result in an internal state which can be rechecked using assertion methods of the SensitiveResult class, if supported by the platform.

        Parameters:
        bArray - containing the partial AID byte sequence
        offset - within bArray to begin
        length - of partial AID bytes in bArray
        Returns:
        true if equal, false otherwise
        Throws:
        SecurityException - if the bArray array is not accessible in the caller's context
        ArrayIndexOutOfBoundsException - if the offset parameter or length parameter is negative or if offset+length is greater than the length of the bArray parameter
      • RIDEquals

        public final boolean RIDEquals​(AID otherAID)
                                throws SecurityException
        Checks if the RID (National Registered Application provider identifier) portion of the encapsulated AID bytes within the otherAID object matches that of this AID object. The first 5 bytes of an AID byte sequence is the RID. See ISO 7816-5 for details. The result is true if and only if the argument is not null and is an AID object that encapsulates the same RID bytes as this object.

        This method does not throw NullPointerException.

        In addition to returning a boolean result, this method sets the result in an internal state which can be rechecked using assertion methods of the SensitiveResult class, if supported by the platform.

        Parameters:
        otherAID - the AID to compare against
        Returns:
        true if the RID bytes match, false otherwise
        Throws:
        SecurityException - if the otherAID object is not accessible in the caller's context
      • getPartialBytes

        public final byte getPartialBytes​(short aidOffset,
                                          byte[] dest,
                                          short oOffset,
                                          byte oLength)
                                   throws NullPointerException,
                                          ArrayIndexOutOfBoundsException,
                                          SecurityException
        Called to get part of the AID bytes encapsulated within the AID object starting at the specified offset for the specified length.
        Parameters:
        aidOffset - offset within AID array to begin copying bytes
        dest - the destination byte array to copy the AID bytes into
        oOffset - offset within dest where the output bytes begin
        oLength - the length of bytes requested in dest. 0 implies a request to copy all remaining AID bytes.
        Returns:
        the actual length of the bytes returned in dest
        Throws:
        SecurityException - if the dest array is not accessible in the caller's context
        NullPointerException - if the dest parameter is null
        ArrayIndexOutOfBoundsException - if the aidOffset parameter is negative or greater than the length of the encapsulated AID bytes or the oOffset parameter is negative or oOffset+length of bytes requested is greater than the length of the dest array