|
|
|
|
@ -132,6 +132,16 @@ impl KRB5State {
|
|
|
|
|
if hdr.class() != Class::Application { return 0; }
|
|
|
|
|
match hdr.tag().0 {
|
|
|
|
|
10 => {
|
|
|
|
|
let req = krb5_parser::parse_as_req(i);
|
|
|
|
|
if let Ok((_,kdc_req)) = req {
|
|
|
|
|
let mut tx = self.new_tx(direction);
|
|
|
|
|
tx.msg_type = MessageType::KRB_AS_REQ;
|
|
|
|
|
tx.cname = kdc_req.req_body.cname;
|
|
|
|
|
tx.realm = Some(kdc_req.req_body.realm);
|
|
|
|
|
tx.sname = kdc_req.req_body.sname;
|
|
|
|
|
tx.etype = None;
|
|
|
|
|
self.transactions.push(tx);
|
|
|
|
|
};
|
|
|
|
|
self.req_id = 10;
|
|
|
|
|
},
|
|
|
|
|
11 => {
|
|
|
|
|
@ -152,6 +162,16 @@ impl KRB5State {
|
|
|
|
|
self.req_id = 0;
|
|
|
|
|
},
|
|
|
|
|
12 => {
|
|
|
|
|
let req = krb5_parser::parse_tgs_req(i);
|
|
|
|
|
if let Ok((_,kdc_req)) = req {
|
|
|
|
|
let mut tx = self.new_tx(direction);
|
|
|
|
|
tx.msg_type = MessageType::KRB_TGS_REQ;
|
|
|
|
|
tx.cname = kdc_req.req_body.cname;
|
|
|
|
|
tx.realm = Some(kdc_req.req_body.realm);
|
|
|
|
|
tx.sname = kdc_req.req_body.sname;
|
|
|
|
|
tx.etype = None;
|
|
|
|
|
self.transactions.push(tx);
|
|
|
|
|
};
|
|
|
|
|
self.req_id = 12;
|
|
|
|
|
},
|
|
|
|
|
13 => {
|
|
|
|
|
|