Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 1x 1x 1x 1x 1x 1x | import { ASN1 } from '@jlguenego/asn.1'; import { inspect } from 'util'; import { ASN1MsgUtils } from '@jlguenego/asn.1/build/src/ASN1MsgUtils'; import { EncodingRule } from '@jlguenego/asn.1/build/src/EncodingRule'; interface KrbApReq { principalName: string; realm: string; } export function getKerberosDetails(buffer: ArrayBuffer) { const message = ASN1.parseMsg(buffer, { encodingRule: EncodingRule.DER, }); const array = ASN1MsgUtils.queryAll(message, 'tagLabel', 'GeneralString'); const principalName = array .map((m) => m.value) .slice(1) .join('/'); const realm = array[0].value as string; const result: KrbApReq = { principalName, realm, }; return result; } export function getKerberosResponseDetails(buffer: ArrayBuffer) { const message = ASN1.parseMsg(buffer, { encodingRule: EncodingRule.DER, }); const msgId = ASN1MsgUtils.query(message, 'tagLabel', '15'); if (msgId) { return 'Regular KRB_AP_REP message'; } return ( 'probably an GSS-API KRB_ERROR message: ' + inspect(message, false, null) ); } |