Root cert buffer too short
This commit is contained in:
parent
9964466138
commit
2fc4e6ddcf
4 changed files with 21 additions and 6 deletions
|
@ -29,7 +29,7 @@ use num_derive::FromPrimitive;
|
||||||
pub use self::asn1_writer::ASN1Writer;
|
pub use self::asn1_writer::ASN1Writer;
|
||||||
use self::printer::CertPrinter;
|
use self::printer::CertPrinter;
|
||||||
|
|
||||||
pub const MAX_CERT_TLV_LEN: usize = 300; // TODO
|
pub const MAX_CERT_TLV_LEN: usize = 1024; // TODO
|
||||||
|
|
||||||
// As per https://datatracker.ietf.org/doc/html/rfc5280
|
// As per https://datatracker.ietf.org/doc/html/rfc5280
|
||||||
|
|
||||||
|
|
|
@ -368,10 +368,16 @@ impl<'a, 'b, 'c> CmdDataEncoder<'a, 'b, 'c> {
|
||||||
|
|
||||||
match handler.invoke(transaction, &cmd, &data, encoder) {
|
match handler.invoke(transaction, &cmd, &data, encoder) {
|
||||||
Ok(()) => cmd.success(&tracker),
|
Ok(()) => cmd.success(&tracker),
|
||||||
Err(error) => cmd.status(error.into()),
|
Err(error) => {
|
||||||
|
error!("Error invoking command: {}", error);
|
||||||
|
cmd.status(error.into())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(status) => Some(status),
|
Err(status) => {
|
||||||
|
error!("Error invoking command: {:?}", status);
|
||||||
|
Some(status)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some(status) = status {
|
if let Some(status) = status {
|
||||||
|
|
|
@ -470,6 +470,8 @@ impl<'a> InvReq<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn complete(self, tx: &mut Packet, _transaction: &mut Transaction) -> Result<bool, Error> {
|
pub fn complete(self, tx: &mut Packet, _transaction: &mut Transaction) -> Result<bool, Error> {
|
||||||
|
let suppress = self.suppress_response.unwrap_or_default();
|
||||||
|
|
||||||
let mut tw = TLVWriter::new(tx.get_writebuf()?);
|
let mut tw = TLVWriter::new(tx.get_writebuf()?);
|
||||||
|
|
||||||
if self.inv_requests.is_some() {
|
if self.inv_requests.is_some() {
|
||||||
|
@ -478,7 +480,12 @@ impl<'a> InvReq<'a> {
|
||||||
|
|
||||||
tw.end_container()?;
|
tw.end_container()?;
|
||||||
|
|
||||||
Ok(true)
|
Ok(if suppress {
|
||||||
|
error!("Supress response is set, is this the expected handling?");
|
||||||
|
false
|
||||||
|
} else {
|
||||||
|
true
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ use crate::error::Error;
|
||||||
use crate::interaction_model::core::{ResumeReadReq, ResumeSubscribeReq};
|
use crate::interaction_model::core::{ResumeReadReq, ResumeSubscribeReq};
|
||||||
use crate::secure_channel;
|
use crate::secure_channel;
|
||||||
use crate::secure_channel::case::CaseSession;
|
use crate::secure_channel::case::CaseSession;
|
||||||
|
use crate::tlv::print_tlv_list;
|
||||||
use crate::utils::epoch::Epoch;
|
use crate::utils::epoch::Epoch;
|
||||||
use crate::utils::rand::Rand;
|
use crate::utils::rand::Rand;
|
||||||
|
|
||||||
|
@ -204,13 +205,14 @@ impl Exchange {
|
||||||
return Ok(false);
|
return Ok(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
trace!("payload: {:x?}", tx.as_mut_slice());
|
trace!("payload: {:x?}", tx.as_slice());
|
||||||
info!(
|
info!(
|
||||||
"{} with proto id: {} opcode: {}",
|
"{} with proto id: {} opcode: {}, tlv:\n",
|
||||||
"Sending".blue(),
|
"Sending".blue(),
|
||||||
tx.get_proto_id(),
|
tx.get_proto_id(),
|
||||||
tx.get_proto_opcode(),
|
tx.get_proto_opcode(),
|
||||||
);
|
);
|
||||||
|
print_tlv_list(tx.as_slice());
|
||||||
|
|
||||||
tx.proto.exch_id = self.id;
|
tx.proto.exch_id = self.id;
|
||||||
if self.role == Role::Initiator {
|
if self.role == Role::Initiator {
|
||||||
|
|
Loading…
Add table
Reference in a new issue