Provided by: nfstest_3.2-2_all
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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. class Checksum(baseobj.BaseObj) Checksum ::= SEQUENCE { cksumtype [0] Int32, checksum [1] OCTET STRING } Methods defined here: --------------------- __init__(self, obj) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. class HostAddress(baseobj.BaseObj) HostAddress ::= SEQUENCE { addr-type [0] Int32, address [1] OCTET STRING } Methods defined here: --------------------- __init__(self, obj) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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: --------------------- __bool__(self) Truth value testing for the built-in operation bool() __init__(self, pktt, proto) Constructor Initialize object's private data. pktt: Packet trace object (packet.pktt.Pktt) so this layer has access to the parent layers. proto: Transport layer protocol. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. class PrincipalName(baseobj.BaseObj) PrincipalName ::= SEQUENCE { name-type [0] Int32, name-string [1] SEQUENCE OF KerberosString } Methods defined here: --------------------- __init__(self, obj) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 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) Constructor Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.
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
baseobj(3), packet.application.krb5_const(3), packet.derunpack(3), packet.utils(3)
BUGS
No known bugs.
AUTHOR
Jorge Mora (mora@netapp.com)