mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-04 23:08:39 +09:00
Update NSS to 3.38
- Added HACL*Poly1305 32-bit (INRIA/Microsoft) - Updated to final TLS 1.3 draft version (28) - Removed TLS 1.3 prerelease draft limit check - Removed NPN code - Enabled dev/urandom-only RNG on Linux with NSS_SEED_ONLY_DEV_URANDOM for non-standard environments - Fixed several bugs with TLS 1.3 negotiation - Updated internal certificate store - Added support for the TLS Record Size Limit Extension. - Fixed CVE-2018-0495 - Various security fixes in the ASN.1 code.
This commit is contained in:
parent
0d5d154158
commit
d36d4eb674
197 changed files with 4873 additions and 7145 deletions
|
|
@ -18,12 +18,12 @@
|
|||
|
||||
namespace nss_test {
|
||||
|
||||
void DataBuffer::Assign(const uint8_t* data, size_t len) {
|
||||
if (data) {
|
||||
Allocate(len);
|
||||
memcpy(static_cast<void*>(data_), static_cast<const void*>(data), len);
|
||||
void DataBuffer::Assign(const uint8_t* d, size_t l) {
|
||||
if (d) {
|
||||
Allocate(l);
|
||||
memcpy(static_cast<void*>(data_), static_cast<const void*>(d), l);
|
||||
} else {
|
||||
assert(len == 0);
|
||||
assert(l == 0);
|
||||
data_ = nullptr;
|
||||
len_ = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ namespace nss_test {
|
|||
class DataBuffer {
|
||||
public:
|
||||
DataBuffer() : data_(nullptr), len_(0) {}
|
||||
DataBuffer(const uint8_t* data, size_t len) : data_(nullptr), len_(0) {
|
||||
Assign(data, len);
|
||||
DataBuffer(const uint8_t* d, size_t l) : data_(nullptr), len_(0) {
|
||||
Assign(d, l);
|
||||
}
|
||||
DataBuffer(const DataBuffer& other) : data_(nullptr), len_(0) {
|
||||
Assign(other);
|
||||
|
|
@ -32,17 +32,17 @@ class DataBuffer {
|
|||
return *this;
|
||||
}
|
||||
|
||||
void Allocate(size_t len) {
|
||||
void Allocate(size_t l) {
|
||||
delete[] data_;
|
||||
data_ = new uint8_t[len ? len : 1]; // Don't depend on new [0].
|
||||
len_ = len;
|
||||
data_ = new uint8_t[l ? l : 1]; // Don't depend on new [0].
|
||||
len_ = l;
|
||||
}
|
||||
|
||||
void Truncate(size_t len) { len_ = (std::min)(len_, len); }
|
||||
void Truncate(size_t l) { len_ = (std::min)(len_, l); }
|
||||
|
||||
void Assign(const DataBuffer& other) { Assign(other.data(), other.len()); }
|
||||
|
||||
void Assign(const uint8_t* data, size_t len);
|
||||
void Assign(const uint8_t* d, size_t l);
|
||||
|
||||
// Write will do a new allocation and expand the size of the buffer if needed.
|
||||
// Returns the offset of the end of the write.
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ struct ScopedDelete {
|
|||
void operator()(SEC_PKCS12DecoderContext* dcx) {
|
||||
SEC_PKCS12DecoderFinish(dcx);
|
||||
}
|
||||
void operator()(CERTDistNames* names) { CERT_FreeDistNames(names); }
|
||||
};
|
||||
|
||||
template <class T>
|
||||
|
|
@ -78,6 +79,7 @@ SCOPED(PK11Context);
|
|||
SCOPED(PK11GenericObject);
|
||||
SCOPED(SSLResumptionTokenInfo);
|
||||
SCOPED(SEC_PKCS12DecoderContext);
|
||||
SCOPED(CERTDistNames);
|
||||
|
||||
#undef SCOPED
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,21 @@ bool TlsParser::Read(DataBuffer* val, size_t len) {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool TlsParser::ReadFromMark(DataBuffer* val, size_t len, size_t mark) {
|
||||
auto saved = offset_;
|
||||
offset_ = mark;
|
||||
|
||||
if (remaining() < len) {
|
||||
offset_ = saved;
|
||||
return false;
|
||||
}
|
||||
|
||||
val->Assign(ptr(), len);
|
||||
|
||||
offset_ = saved;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TlsParser::ReadVariable(DataBuffer* val, size_t len_size) {
|
||||
uint32_t len;
|
||||
if (!Read(&len, len_size)) {
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ class TlsParser {
|
|||
bool Read(uint32_t* val, size_t size);
|
||||
// Reads len bytes into dest buffer, overwriting it.
|
||||
bool Read(DataBuffer* dest, size_t len);
|
||||
bool ReadFromMark(DataBuffer* val, size_t len, size_t mark);
|
||||
// Reads bytes into dest buffer, overwriting it. The number of bytes is
|
||||
// determined by reading from len_size bytes from the stream first.
|
||||
bool ReadVariable(DataBuffer* dest, size_t len_size);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue