def build_authenticator(realm, name, chksum, subkey, current_time, authorization_data=None): auth = Authenticator() auth['authenticator-vno'] = 5 auth['crealm'] = realm auth['cname'] = None auth['cname']['name-type'] = NT_PRINCIPAL auth['cname']['name-string'] = None auth['cname']['name-string'][0] = name auth['cksum'] = None auth['cksum']['cksumtype'] = chksum[0] auth['cksum']['checksum'] = chksum[1] gt, ms = epoch2gt(current_time, microseconds=True) auth['cusec'] = ms auth['ctime'] = gt auth['subkey'] = None auth['subkey']['keytype'] = subkey[0] auth['subkey']['keyvalue'] = subkey[1] if authorization_data is not None: auth['authorization-data'] = _v(8, authorization_data) return auth
def build_pa_enc_timestamp(current_time, key): gt, ms = epoch2gt(current_time, microseconds=True) pa_ts_enc = PaEncTsEnc() pa_ts_enc['patimestamp'] = gt pa_ts_enc['pausec'] = ms pa_ts = PaEncTimestamp() pa_ts['etype'] = key[0] pa_ts['cipher'] = encrypt(key[0], key[1], 1, encode(pa_ts_enc)) return pa_ts