Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ tracing = { version = "0.1" }
tracing-subscriber = { version = "0.3" }

# der = { version = "0.7.9", features = ["alloc", "derive"] }
der = { git = "https://github.com/scabrero/formats.git", branch = "der-tag-generalstring", features = [
der = { version = "0.8.0-rc.2", features = [
"alloc",
"derive",
"flagset",
Expand Down
4 changes: 3 additions & 1 deletion src/asn1/ap_req.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,13 @@ impl ApReq {
impl FixedTag for ApReq {
const TAG: Tag = Tag::Application {
constructed: true,
number: TagNumber::N14,
number: TagNumber(14),
};
}

impl<'a> DecodeValue<'a> for ApReq {
type Error = der::Error;

fn decode_value<R: der::Reader<'a>>(reader: &mut R, _header: der::Header) -> der::Result<Self> {
let inner: ApReqInner = ApReqInner::decode(reader)?;
Ok(Self(inner))
Expand Down
4 changes: 3 additions & 1 deletion src/asn1/authenticator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,11 +125,13 @@ impl Authenticator {
impl FixedTag for Authenticator {
const TAG: Tag = Tag::Application {
constructed: true,
number: TagNumber::N2,
number: TagNumber(2),
};
}

impl<'a> DecodeValue<'a> for Authenticator {
type Error = der::Error;

fn decode_value<R: der::Reader<'a>>(reader: &mut R, _header: der::Header) -> der::Result<Self> {
let inner: AuthenticatorInner = AuthenticatorInner::decode(reader)?;
Ok(Self(inner))
Expand Down
4 changes: 3 additions & 1 deletion src/asn1/enc_ticket_part.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,13 @@ impl TaggedEncTicketPart {
impl FixedTag for TaggedEncTicketPart {
const TAG: Tag = Tag::Application {
constructed: true,
number: TagNumber::N3,
number: TagNumber(3),
};
}

impl<'a> DecodeValue<'a> for TaggedEncTicketPart {
type Error = der::Error;

fn decode_value<R: der::Reader<'a>>(reader: &mut R, _header: der::Header) -> der::Result<Self> {
let t: EncTicketPart = EncTicketPart::decode(reader)?;
Ok(Self(t))
Expand Down
2 changes: 2 additions & 0 deletions src/asn1/kerberos_string.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ impl FixedTag for KerberosString {
}

impl<'a> DecodeValue<'a> for KerberosString {
type Error = der::Error;

fn decode_value<R: der::Reader<'a>>(reader: &mut R, header: der::Header) -> der::Result<Self> {
let r: Ia5String = der::asn1::Ia5String::decode_value(reader, header)?;
Ok(Self(r))
Expand Down
4 changes: 3 additions & 1 deletion src/asn1/krb_error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,13 @@ struct TaggedKrbError(KrbError);
impl FixedTag for TaggedKrbError {
const TAG: Tag = Tag::Application {
constructed: true,
number: TagNumber::N30,
number: TagNumber(30),
};
}

impl<'a> DecodeValue<'a> for TaggedKrbError {
type Error = der::Error;

fn decode_value<R: der::Reader<'a>>(reader: &mut R, _header: der::Header) -> der::Result<Self> {
let e: KrbError = KrbError::decode(reader)?;
Ok(Self(e))
Expand Down
20 changes: 11 additions & 9 deletions src/asn1/krb_kdc_rep.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,30 @@ pub(crate) enum KrbKdcRep {
}

impl<'a> ::der::Decode<'a> for KrbKdcRep {
type Error = der::Error;

fn decode<R: der::Reader<'a>>(decoder: &mut R) -> der::Result<Self> {
let tag: der::Tag = decoder.decode()?;
let _len: der::Length = decoder.decode()?;

match tag {
Tag::Application {
constructed: true,
number: TagNumber::N11,
number: TagNumber(11),
} => {
let kdc_rep: KdcRep = decoder.decode()?;
Ok(KrbKdcRep::AsRep(kdc_rep))
}
Tag::Application {
constructed: true,
number: TagNumber::N13,
number: TagNumber(13),
} => {
let kdc_rep: KdcRep = decoder.decode()?;
Ok(KrbKdcRep::TgsRep(kdc_rep))
}
Tag::Application {
constructed: true,
number: TagNumber::N30,
number: TagNumber(30),
} => {
let err_rep: KrbError = decoder.decode()?;
Ok(KrbKdcRep::ErrRep(err_rep))
Expand All @@ -58,7 +60,7 @@ impl ::der::Encode for KrbKdcRep {
KrbKdcRep::AsRep(asrep) => {
Tag::Application {
constructed: true,
number: TagNumber::N11,
number: TagNumber(11),
}
.encoded_len()?
+ asrep.encoded_len()?
Expand All @@ -67,7 +69,7 @@ impl ::der::Encode for KrbKdcRep {
KrbKdcRep::TgsRep(tgsrep) => {
Tag::Application {
constructed: true,
number: TagNumber::N13,
number: TagNumber(13),
}
.encoded_len()?
+ tgsrep.encoded_len()?
Expand All @@ -76,7 +78,7 @@ impl ::der::Encode for KrbKdcRep {
KrbKdcRep::ErrRep(err_rep) => {
Tag::Application {
constructed: true,
number: TagNumber::N30,
number: TagNumber(30),
}
.encoded_len()?
+ err_rep.encoded_len()?
Expand All @@ -91,7 +93,7 @@ impl ::der::Encode for KrbKdcRep {
KrbKdcRep::AsRep(asrep) => {
Tag::Application {
constructed: true,
number: TagNumber::N11,
number: TagNumber(11),
}
.encode(writer)?;
asrep.encoded_len()?.encode(writer)?;
Expand All @@ -100,7 +102,7 @@ impl ::der::Encode for KrbKdcRep {
KrbKdcRep::TgsRep(tgsrep) => {
Tag::Application {
constructed: true,
number: TagNumber::N13,
number: TagNumber(13),
}
.encode(writer)?;
tgsrep.encoded_len()?.encode(writer)?;
Expand All @@ -109,7 +111,7 @@ impl ::der::Encode for KrbKdcRep {
KrbKdcRep::ErrRep(err_rep) => {
Tag::Application {
constructed: true,
number: TagNumber::N30,
number: TagNumber(30),
}
.encode(writer)?;
err_rep.encoded_len()?.encode(writer)?;
Expand Down
14 changes: 8 additions & 6 deletions src/asn1/krb_kdc_req.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,23 @@ pub(crate) enum KrbKdcReq {
}

impl<'a> ::der::Decode<'a> for KrbKdcReq {
type Error = der::Error;

fn decode<R: der::Reader<'a>>(decoder: &mut R) -> der::Result<Self> {
let tag: der::Tag = decoder.decode()?;
let _len: der::Length = decoder.decode()?;

match tag {
Tag::Application {
constructed: true,
number: TagNumber::N10,
number: TagNumber(10),
} => {
let kdc_req: KdcReq = decoder.decode()?;
Ok(KrbKdcReq::AsReq(kdc_req))
}
Tag::Application {
constructed: true,
number: TagNumber::N12,
number: TagNumber(12),
} => {
let kdc_req: KdcReq = decoder.decode()?;
Ok(KrbKdcReq::TgsReq(kdc_req))
Expand All @@ -46,7 +48,7 @@ impl ::der::Encode for KrbKdcReq {
KrbKdcReq::AsReq(asreq) => {
let tag_len = Tag::Application {
constructed: true,
number: TagNumber::N10,
number: TagNumber(10),
}
.encoded_len()?;

Expand All @@ -60,7 +62,7 @@ impl ::der::Encode for KrbKdcReq {
KrbKdcReq::TgsReq(tgsreq) => {
let tag_len = Tag::Application {
constructed: true,
number: TagNumber::N12,
number: TagNumber(12),
}
.encoded_len()?;

Expand All @@ -80,7 +82,7 @@ impl ::der::Encode for KrbKdcReq {
KrbKdcReq::AsReq(asreq) => {
Tag::Application {
constructed: true,
number: TagNumber::N10,
number: TagNumber(10),
}
.encode(writer)?;
asreq.encoded_len()?.encode(writer)?;
Expand All @@ -89,7 +91,7 @@ impl ::der::Encode for KrbKdcReq {
KrbKdcReq::TgsReq(tgsreq) => {
Tag::Application {
constructed: true,
number: TagNumber::N12,
number: TagNumber(12),
}
.encode(writer)?;
tgsreq.encoded_len()?.encode(writer)?;
Expand Down
14 changes: 8 additions & 6 deletions src/asn1/tagged_enc_kdc_rep_part.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,23 @@ pub(crate) enum TaggedEncKdcRepPart {
}

impl<'a> ::der::Decode<'a> for TaggedEncKdcRepPart {
type Error = der::Error;

fn decode<R: der::Reader<'a>>(decoder: &mut R) -> der::Result<Self> {
let tag: der::Tag = decoder.decode()?;
let _len: der::Length = decoder.decode()?;

match tag {
Tag::Application {
constructed: true,
number: TagNumber::N25,
number: TagNumber(25),
} => {
let enc_kdc_rep_part: EncKdcRepPart = decoder.decode()?;
Ok(TaggedEncKdcRepPart::EncAsRepPart(enc_kdc_rep_part))
}
Tag::Application {
constructed: true,
number: TagNumber::N26,
number: TagNumber(26),
} => {
let enc_kdc_rep_part: EncKdcRepPart = decoder.decode()?;
Ok(TaggedEncKdcRepPart::EncTgsRepPart(enc_kdc_rep_part))
Expand All @@ -45,7 +47,7 @@ impl ::der::Encode for TaggedEncKdcRepPart {
TaggedEncKdcRepPart::EncAsRepPart(enc_as_rep_part) => {
Tag::Application {
constructed: true,
number: TagNumber::N25,
number: TagNumber(25),
}
.encoded_len()?
+ enc_as_rep_part.encoded_len()?
Expand All @@ -54,7 +56,7 @@ impl ::der::Encode for TaggedEncKdcRepPart {
TaggedEncKdcRepPart::EncTgsRepPart(enc_tgs_rep_part) => {
Tag::Application {
constructed: true,
number: TagNumber::N26,
number: TagNumber(26),
}
.encoded_len()?
+ enc_tgs_rep_part.encoded_len()?
Expand All @@ -69,7 +71,7 @@ impl ::der::Encode for TaggedEncKdcRepPart {
TaggedEncKdcRepPart::EncAsRepPart(enc_as_rep_part) => {
Tag::Application {
constructed: true,
number: TagNumber::N25,
number: TagNumber(25),
}
.encode(writer)?;
enc_as_rep_part.encoded_len()?.encode(writer)?;
Expand All @@ -78,7 +80,7 @@ impl ::der::Encode for TaggedEncKdcRepPart {
TaggedEncKdcRepPart::EncTgsRepPart(enc_tgs_rep_part) => {
Tag::Application {
constructed: true,
number: TagNumber::N26,
number: TagNumber(26),
}
.encode(writer)?;
enc_tgs_rep_part.encoded_len()?.encode(writer)?;
Expand Down
4 changes: 3 additions & 1 deletion src/asn1/tagged_ticket.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,13 @@ impl TaggedTicket {
impl FixedTag for TaggedTicket {
const TAG: Tag = Tag::Application {
constructed: true,
number: TagNumber::N1,
number: TagNumber(1),
};
}

impl<'a> DecodeValue<'a> for TaggedTicket {
type Error = der::Error;

fn decode_value<R: der::Reader<'a>>(reader: &mut R, _header: der::Header) -> der::Result<Self> {
let t: Ticket = Ticket::decode(reader)?;
Ok(Self(t))
Expand Down
Loading