| KRB5(3) | krb5 1.0 | KRB5(3) | 
NAME¶
packet.application.krb5 - KRB5 module
DESCRIPTION¶
Decode KRB5 layer Decoding using ASN.1 DER (Distinguished Encoding Representation)
RFC 4120 The Kerberos Network Authentication Service (V5) RFC 6113 A Generalized Framework for Kerberos Pre-Authentication
CLASSES¶
class APOptions(packet.utils.OptionFlags)¶
AP Option flags
class AP_REP(baseobj.BaseObj)¶
AP-REP  ::= [APPLICATION 15] SEQUENCE {
    pvno      [0] INTEGER (5),
    msg-type  [1] INTEGER (15),
    enc-part  [2] EncryptedData -- EncAPRepPart
}
Methods defined here: ---------------------
__init__(self, obj)
class AP_REQ(baseobj.BaseObj)¶
AP-REQ  ::= [APPLICATION 14] SEQUENCE {
    pvno           [0] INTEGER (5),
    msg-type       [1] INTEGER (14),
    options        [2] APOptions,
    ticket         [3] Ticket,
    authenticator  [4] EncryptedData -- Authenticator
}
Methods defined here: ---------------------
__init__(self, obj)
class Checksum(baseobj.BaseObj)¶
Checksum  ::= SEQUENCE {
    cksumtype  [0] Int32,
    checksum   [1] OCTET STRING
}
Methods defined here: ---------------------
__init__(self, obj)
class EncryptedData(baseobj.BaseObj)¶
EncryptedData  ::= SEQUENCE {
    etype   [0] Int32 -- EncryptionType --,
    kvno    [1] UInt32 OPTIONAL,
    cipher  [2] OCTET STRING -- ciphertext
}
Methods defined here: ---------------------
__init__(self, obj)
class EtypeInfo2Entry(baseobj.BaseObj)¶
ETYPE-INFO2-ENTRY  ::= SEQUENCE {
    etype      [0] Int32,
    salt       [1] KerberosString OPTIONAL,
    s2kparams  [2] OCTET STRING OPTIONAL
}
Methods defined here: ---------------------
__init__(self, obj)
class HostAddress(baseobj.BaseObj)¶
HostAddress  ::= SEQUENCE  {
    addr-type  [0] Int32,
    address    [1] OCTET STRING
}
Methods defined here: ---------------------
__init__(self, obj)
class KDCOptions(packet.utils.OptionFlags)¶
KDC Option flags
class KDC_REP(baseobj.BaseObj)¶
KDC-REP  ::= SEQUENCE {
    pvno      [0] INTEGER (5),
    msg-type  [1] INTEGER (11 -- AS -- | 13 -- TGS --),
    padata    [2] SEQUENCE OF PA-DATA OPTIONAL
                  -- NOTE: not empty --,
    crealm    [3] Realm,
    cname     [4] PrincipalName,
    ticket    [5] Ticket,
    enc-part  [6] EncryptedData
                  -- EncASRepPart or EncTGSRepPart,
                  -- as appropriate
}
Methods defined here: ---------------------
__init__(self, obj)
class KDC_REQ(baseobj.BaseObj)¶
KDC-REQ  ::= SEQUENCE {
    -- NOTE: first tag is [1], not [0]
    pvno      [1] INTEGER (5) ,
    msg-type  [2] INTEGER (10 -- AS -- | 12 -- TGS --),
    padata    [3] SEQUENCE OF PA-DATA OPTIONAL
                  -- NOTE: not empty --,
    req-body  [4] KDC-REQ-BODY
}
Methods defined here: ---------------------
__init__(self, obj)
class KDC_REQ_BODY(baseobj.BaseObj)¶
KDC-REQ-BODY  ::= SEQUENCE {
    options                  [0] KDCOptions,
    cname                    [1] PrincipalName OPTIONAL
                                 -- Used only in AS-REQ --,
    realm                    [2] Realm
                                 -- Server's realm
                                 -- Also client's in AS-REQ --,
    sname                    [3] PrincipalName OPTIONAL,
    from                     [4] KerberosTime OPTIONAL,
    till                     [5] KerberosTime,
    rtime                    [6] KerberosTime OPTIONAL,
    nonce                    [7] UInt32,
    etype                    [8] SEQUENCE OF Int32 -- EncryptionType
                                 -- in preference order --,
    addresses                [9] HostAddresses OPTIONAL,
    enc-authorization-data  [10] EncryptedData OPTIONAL
                                 -- AuthorizationData --,
    additional-tickets      [11] SEQUENCE OF Ticket OPTIONAL
                                 -- NOTE: not empty
}
Methods defined here: ---------------------
__init__(self, obj)
class KRB5(baseobj.BaseObj)¶
KRB5 object Usage:
from packet.application.krb5 import KRB5
# Decode KRB5 layer
x = KRB5(pktt, proto) Object definition: KRB5(
appid = int, # Application Identifier
kdata = KDC_REQ|KDC_REP|KRB_ERROR }
Methods defined here: ---------------------
__init__(self, pktt, proto) Constructor Initialize object's private data.
__nonzero__(self) Truth value testing for the built-in operation bool()
class KRB_ERROR(baseobj.BaseObj)¶
KRB-ERROR  ::= [APPLICATION 30] SEQUENCE {
    pvno        [0] INTEGER (5),
    msg-type    [1] INTEGER (30),
    ctime       [2] KerberosTime OPTIONAL,
    cusec       [3] Microseconds OPTIONAL,
    stime       [4] KerberosTime,
    susec       [5] Microseconds,
    error-code  [6] Int32,
    crealm      [7] Realm OPTIONAL,
    cname       [8] PrincipalName OPTIONAL,
    realm       [9] Realm -- service realm --,
    sname       [10] PrincipalName -- service name --,
    e-text      [11] KerberosString OPTIONAL,
    e-data      [12] OCTET STRING OPTIONAL
}
Methods defined here: ---------------------
__init__(self, obj)
class KrbFastArmor(baseobj.BaseObj)¶
KrbFastArmor  ::= SEQUENCE {
    armor-type   [0] Int32,
        -- Type of the armor.
    armor-value  [1] OCTET STRING,
        -- Value of the armor.
}
Methods defined here: ---------------------
__init__(self, obj)
class KrbFastArmoredRep(baseobj.BaseObj)¶
KrbFastArmoredRep ::= SEQUENCE {
   enc-fast-rep  [0] EncryptedData, -- KrbFastResponse --
       -- The encryption key is the armor key in the request, and
       -- the key usage number is KEY_USAGE_FAST_REP.
}
Methods defined here: ---------------------
__init__(self, obj)
class KrbFastArmoredReq(baseobj.BaseObj)¶
KrbFastArmoredReq ::= SEQUENCE {
    armor        [0] KrbFastArmor OPTIONAL,
        -- Contains the armor that identifies the armor key.
        -- MUST be present in AS-REQ.
    req-checksum [1] Checksum,
        -- For AS, contains the checksum performed over the type
        -- KDC-REQ-BODY for the req-body field of the KDC-REQ
        -- structure;
        -- For TGS, contains the checksum performed over the type
        -- AP-REQ in the PA-TGS-REQ padata.
        -- The checksum key is the armor key, the checksum
        -- type is the required checksum type for the enctype of
        -- the armor key, and the key usage number is
        -- KEY_USAGE_FAST_REQ_CHKSUM.
    enc-fast-req [2] EncryptedData, -- KrbFastReq --
        -- The encryption key is the armor key, and the key usage
        -- number is KEY_USAGE_FAST_ENC.
}
Methods defined here: ---------------------
__init__(self, obj)
class PrincipalName(baseobj.BaseObj)¶
PrincipalName  ::= SEQUENCE {
    name-type    [0] Int32,
    name-string  [1] SEQUENCE OF KerberosString
}
Methods defined here: ---------------------
__init__(self, obj)
class Ticket(baseobj.BaseObj)¶
Ticket  ::= [APPLICATION 1] SEQUENCE {
    tkt-vno   [0] INTEGER (5),
    realm     [1] Realm,
    sname     [2] PrincipalName,
    enc-part  [3] EncryptedData -- EncTicketPart
}
Methods defined here: ---------------------
__init__(self, obj)
class krb5_addrtype(packet.utils.Enum)¶
enum krb5_addrtype
class krb5_adtype(packet.utils.Enum)¶
enum krb5_adtype
class krb5_application(packet.utils.Enum)¶
enum krb5_application
class krb5_ctype(packet.utils.Enum)¶
enum krb5_ctype
class krb5_etype(packet.utils.Enum)¶
enum krb5_etype
class krb5_fatype(packet.utils.Enum)¶
enum krb5_fatype
class krb5_patype(packet.utils.Enum)¶
enum krb5_patype
class krb5_principal(packet.utils.Enum)¶
enum krb5_principal
class krb5_status(packet.utils.Enum)¶
enum krb5_status
class paData(baseobj.BaseObj)¶
PA-DATA  ::= SEQUENCE {
    -- NOTE: first tag is [1], not [0]
    padata-type   [1] Int32,
    padata-value  [2] OCTET STRING
}
Methods defined here: ---------------------
__init__(self, obj)
FUNCTIONS¶
KerberosTime(stime, usec=None)¶
Convert floating point time to a DateStr object, include the microseconds if given
Optional(obj, objtype)¶
Get Optional item of the given object type
SequenceOf(obj, objtype)¶
SEQUENCE OF: return list of the given object type
SEE ALSO¶
BUGS¶
No known bugs.
AUTHOR¶
Jorge Mora (mora@netapp.com)
| 14 February 2017 | NFStest 2.1.5 |