---
name: "packet.application.gss"
section: "3"
platform: "linux"
package: "nfstest"
version: "3.2-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/packet.application.gss"
---

# packet.application.gss(3)

GSS module

## NAME

packet.application.gss - GSS module

## DESCRIPTION

Decode GSS layers.

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

## CLASSES

### class GSS(baseobj.BaseObj)

```
GSS Data object
This is a base object and should not be instantiated.
It gives the following methods:
    # 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 operation bool()

**\_\_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
```

### class gss\_minor\_status(packet.utils.Enum)

```
enum gss_minor_status
```

### class gss\_sgn\_alg(packet.utils.Enum)

```
enum gss_sgn_alg
```

### class rgss3\_assertion\_type(packet.utils.Enum)

```
enum rgss3_assertion_type
```

### 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
```

### 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<>;
};
```

### 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

**[baseobj(3)](/baseobj/3.md),** **[packet.application.gss\_const(3)](/packet.application.gss_const/3.md),** **[packet.application.krb5(3)](/packet.application.krb5/3.md),** **[packet.application.rpc\_const(3)](/packet.application.rpc_const/3.md),** **[packet.derunpack(3)](/packet.derunpack/3.md),** **[packet.unpack(3)](/packet.unpack/3.md),** **[packet.utils(3)](/packet.utils/3.md)**

## BUGS

No known bugs.

## AUTHOR

Jorge Mora (mora@netapp.com)
