GSS(3)
π GSS β the packet.application.gss module
okay bestie, listen up, this is the manual page for GSS(3) from the gss 3.0 manual, and we're gonna get you so comfy with it π
β¨ NAME β¨
packet.application.gss β it's the GSS module, periodt π
πΈ DESCRIPTION πΈ
This thing decodes GSS layers. That's the whole vibe. Decoding. Layers. Slay.
And because receipts matter, here are the RFCs it's living by:
- RFC 2203 β RPCSEC_GSS Protocol Specification
- RFC 5403 β RPCSEC_GSS Version 2
- RFC 7861 β RPCSEC_GSS Version 3
- RFC 1964 β The Kerberos Version 5 GSS-API Mechanism
β οΈ NOTE: Procedure RPCSEC_GSS_BIND_CHANNEL is not supported. Not me catching strays in the spec π it's just not here, bestie, don't come for me.
π CLASSES π
π¦ class GSS(baseobj.BaseObj)
GSS Data object. She's the base object, so do not instantiate her β she's giving foundation, not main character. π
What she hands you:
# Decode data preceding the RPC payload when flavor is RPCSEC_GSS
x.decode_gss_data()
# Decode data following the RPC payload when flavor is RPCSEC_GSS
x.decode_gss_checksum()
Methods defined here:
decode_gss_checksum(self)β Decode GSS checksum π₯decode_gss_data(self)β Decode GSS data β¨
π§ class GSS_API(baseobj.BaseObj)
GSS-API DEFINITIONS ::=
BEGIN
MechType ::= OBJECT IDENTIFIER
-- representing Kerberos V5 mechanism
GSSAPI-Token ::=
-- option indication (delegation, etc.) indicated within
-- mechanism-specific token
[APPLICATION 0] IMPLICIT SEQUENCE {
thisMech MechType,
innerToken ANY DEFINED BY thisMech
-- contents mechanism-specific
-- ASN.1 structure not required
}
END
Methods defined here:
__bool__(self)β Truth value testing for the built-in operationbool()π__init__(self, data)β 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 GetCfxMIC(baseobj.BaseObj)
struct GSS_GetCfxMIC {
unsigned char flags; /* Attributes field */
opaque filler[5]; /* Filler bytes: 0xffffffffff */
unsigned long long snd_seq; /* Sequence number field */
unsigned char sgn_cksum[]; /* Checksum of "to-be-signed data" */
};
Methods defined here:
__init__(self, unpack)β 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 GetMIC(baseobj.BaseObj)
struct GSS_GetMIC {
unsigned short sgn_alg; /* Integrity algorithm indicator */
opaque filler[4]; /* Filler bytes: 0xffffffff */
unsigned long long snd_seq; /* Sequence number field */
opaque sgn_cksum[8]; /* Checksum of "to-be-signed data" */
};
Methods defined here:
__init__(self, unpack)β 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 gss_major_status(packet.utils.Enum)
enum gss_major_status β that's it, that's the class, no notes π
π₯ class gss_minor_status(packet.utils.Enum)
enum gss_minor_status β iconic, brief, unbothered πΈ
π₯ class gss_sgn_alg(packet.utils.Enum)
enum gss_sgn_alg β tiny but mighty β¨
π₯ class rgss3_assertion_type(packet.utils.Enum)
enum rgss3_assertion_type β the type of assertion, we love a label π·οΈ
π¦ class rgss3_assertion_u(baseobj.BaseObj)
union switch rgss3_assertion_u (rgss3_assertion_type atype) {
case const.LABEL:
rgss3_label label;
case const.PRIVS:
rgss3_privs privs;
default:
opaque ext<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_create_args(baseobj.BaseObj)
struct rgss3_create_args {
rgss3_gss_mp_auth auth<1>;
rgss3_chan_binding mic<1>;
rgss3_assertion_u assertions<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_create_res(baseobj.BaseObj)
struct rgss3_create_res {
opaque context<>;
rgss3_gss_mp_auth auth<1>;
rgss3_chan_binding mic<1>;
rgss3_assertion_u assertions<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_gss_mp_auth(baseobj.BaseObj)
struct rgss3_gss_mp_auth {
opaque context<>; /* Inner handle */
opaque mic<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_label(baseobj.BaseObj)
struct rgss3_label {
rgss3_lfs lfs;
opaque label<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_lfs(baseobj.BaseObj)
struct rgss3_lfs {
unsigned int lfs_id;
unsigned int pi_id;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_list_args(baseobj.BaseObj)
struct rgss3_list_args {
rgss3_list_item items<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_list_item(rgss3_assertion_type)
enum rgss3_assertion_type β yes bestie, she inherits the vibe and keeps the same enum energy π
π¦ class rgss3_list_item_u(baseobj.BaseObj)
union switch rgss3_list_item_u (rgss3_list_item itype) {
case const.LABEL:
rgss3_label labels<>;
case const.PRIVS:
rgss3_privs privs<>;
default:
opaque ext<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_list_res(baseobj.BaseObj)
struct rgss3_list_res {
rgss3_list_item_u items<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss3_privs(baseobj.BaseObj)
struct rgss3_privs {
utf8str_cs name;
opaque privilege<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss_checksum(rgss_init_arg)
struct rpc_gss_init_arg {
opaque token<>;
};
no cap, that's the whole struct π«Ά
π¦ class rgss_data(baseobj.BaseObj)
struct rgss_data {
unsigned int length;
unsigned int seq_num;
};
Methods defined here:
__init__(self, unpack)β 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 rgss_init_arg(baseobj.BaseObj)
struct rpc_gss_init_arg {
opaque token<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss_init_res(baseobj.BaseObj)
struct rgss_init_res {
opaque context<>;
unsigned int major;
unsigned int minor;
unsigned int seq_window;
opaque token<>;
};
Methods defined here:
__init__(self, unpack)β 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 rgss_priv_data(baseobj.BaseObj)
struct rgss_priv_data {
opaque data<>;
};
Methods defined here:
__init__(self, unpack)β Constructor. Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. π
π SEE ALSO π
the way these are all linked together, we love a friend group:
baseobj(3)packet.application.gss_const(3)packet.application.krb5(3)packet.application.rpc_const(3)packet.derunpack(3)packet.unpack(3)packet.utils(3)
π BUGS π
No known bugs. we're flawless, we're unproblematic, we simply ate π β¨
π«Ά AUTHOR π«Ά
Jorge Mora (mora@netapp.com) β thank you king π
and that's a wrap bestie!! this page came to you from NFStest 3.2, dated 21 March 2023, and it's literally the GSS(3) manual, so go forth and decode those layers fr fr ππβ¨
π¦ where this page comes from
- debian trixie: nfstest 3.2-3
- fedora 43: NFStest 3.2-14.fc43 Β· GPL-2.0-or-later
- fedora 44: NFStest 3.2-16.fc44 Β· GPL-2.0-or-later
- ubuntu noble: nfstest 3.2-2
- ubuntu questing: nfstest 3.2-3
- ubuntu resolute: nfstest 3.2-3build1
- ubuntu stonking: nfstest 3.2-5
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms