cdef char * c_cell
cdef a.ktc_principal prin
cdef a.ktc_token token
+ cdef a.rx_securityClass *sc
if cell is None:
c_cell = NULL
# No really - we wanted authentication
raise Exception(code, "Failed to get token for service AFS: %s" % a.error_message(code))
sec = 0
+ else:
+ if sec == 3:
+ level = a.rxkad_crypt
+ else:
+ level = a.rxkad_clear
+ sc = a.rxkad_NewClientSecurityObject(level, &token.sessionKey,
+ token.kvno, token.ticketLen,
+ token.ticket)
+
+ if sec == 0:
+ sc = a.rxnull_NewClientSecurityObject()
+ else:
+ sec = 2
+
+ code = a.rxs_Release(sc)
def __dealloc__(self):
a.rx_Finalize()
int rx_Init(int port)
void rx_Finalize()
+cdef extern from *:
+ struct ktc_encryptionKey:
+ pass
+
cdef extern from "rx/rxkad.h":
+ ctypedef char rxkad_level
+
enum:
MAXKTCNAMELEN
MAXKTCREALMLEN
+ enum:
+ rxkad_clear
+ rxkad_crypt
+
struct ktc_principal:
char name[MAXKTCNAMELEN]
char instance[MAXKTCNAMELEN]
char cell[MAXKTCREALMLEN]
-
-cdef extern from "afs/com_err.h":
- char * error_message(int)
+
+ struct rx_securityClass:
+ pass
+
+ rx_securityClass *rxkad_NewClientSecurityObject(rxkad_level level,
+ ktc_encryptionKey *sessionKey,
+ afs_int32 kvno,
+ int ticketLen,
+ char *ticket)
+ rx_securityClass *rxnull_NewClientSecurityObject()
+
+ int rxs_Release(rx_securityClass *aobj)
cdef extern from "afs/auth.h":
enum:
MAXKTCTICKETLEN
- # We don't look into this
- struct ktc_encryptionKey:
- pass
-
struct ktc_token:
ktc_encryptionKey sessionKey
short kvno
ktc_token *token,
int tokenLen,
ktc_principal *client)
+
+cdef extern from "afs/com_err.h":
+ char * error_message(int)