----------------------------------------------------------------------------
-- X509.ASN
--
-- ASN.1 definitions for SET X509 v3 certificate extensions
----------------------------------------------------------------------------

--#comment "Copyright (C) Microsoft Corporation, 1996-1999. All rights reserved."--
--#comment "ASN.1 definitions for SET X509 v3 certificates"--

--#SS.basic lenptr--   -- set of and sequence of w/o size constraint
--#SS.sized lenptr--   -- set of and sequence of w/  size constraint

X509
DEFINITIONS EXPLICIT TAGS ::=
BEGIN

    HUGEINTEGER ::= INTEGER --#intx--                       -- tag 0x02
    BITSTRING   ::= BIT STRING --#lenptr-- --#nomemcpy--   -- tag 0x03
    OCTETSTRING ::= OCTET STRING --#lenptr-- --#nomemcpy-- -- tag 0x04
    NOCOPYANY   ::= ANY --#nomemcpy--

    NUMERICSTRING ::= NumericString --#lenptr--         -- tag 0x12 (18)
    PRINTABLESTRING ::= PrintableString --#lenptr--     -- tag 0x13 (19)
    TELETEXSTRING ::= TeletexString --#lenptr--         -- tag 0x14 (20)
    T61STRING ::= T61String --#lenptr--                 -- tag 0x14 (20)
    VIDEOTEXSTRING ::= VideotexString --#lenptr--       -- tag 0x15 (21)
    IA5STRING ::= IA5String --#lenptr--                 -- tag 0x16 (22)
    GRAPHICSTRING ::= GraphicString --#lenptr--         -- tag 0x19 (25)
    VISIBLESTRING ::= VisibleString --#lenptr--         -- tag 0x1A (26)
    ISO646STRING ::= ISO646String --#lenptr--           -- tag 0x1A (26)
    GENERALSTRING ::= GeneralString --#lenptr--         -- tag 0x1B (27)
    UNIVERSALSTRING ::= UniversalString --#lenptr--     -- tag 0x1C (28)
    BMPSTRING ::= BMPString --#lenptr--                 -- tag 0x1E (30)

    --------------------------------------------
    --  SET Private Extensions
    --------------------------------------------

    --------------------------------------------
    -- Account Alias Private Extension
    --
    -- Identifies if the actual bankcard number is used
    -- or if an alias is used.
    -- Not critical.
    --------------------------------------------
    SETAccountAlias ::= BOOLEAN --#public--

    --------------------------------------------
    -- Hashed Root Key Private Extension
    --
    -- This extension is used only in the root Certifice
    -- It contains the SHA hash of the next root key.
    -- Not critical.
    --------------------------------------------
    SETHashedRootKey ::= OCTETSTRING --#public--

    --------------------------------------------
    -- Certificate Type Private Extension
    --
    -- The certificate type is used to distinguish
    -- between the different elements.
    -- Not critical.
    --------------------------------------------
    SETCertificateType ::= BITSTRING --#public--

    --------------------------------------------
    -- Merchant Data
    --------------------------------------------
    SETMerchantData ::= SEQUENCE {
        merID               IA5STRING,
        merAcquirerBIN      NUMERICSTRING,
        merTermID           IA5STRING,
        merName             IA5STRING,
        merCity             IA5STRING,
        merStateProvince    IA5STRING,
        merPostalCode       IA5STRING,
        merCountry          IA5STRING,
        merPhone            IA5STRING,
        merPhoneRelease     BOOLEAN,
        merAuthFlag         BOOLEAN
    } --#public--
END