srctree

Gregory Mullen parent bcb534c2 a93abe23
move tls certificate errors into a certificate error namespace

inlinesplit
lib/std/crypto/Certificate.zig added: 27, removed: 22, total 5
@@ -5,6 +5,25 @@ pub const Bundle = @import("Certificate/Bundle.zig");
 
pub const Version = enum { v1, v2, v3 };
 
pub const Error = error{
CertificateExpired,
CertificateFieldHasInvalidLength,
CertificateFieldHasWrongDataType,
CertificateHasInvalidBitString,
CertificateHasUnrecognizedObjectId,
CertificateHostMismatch,
CertificateIssuerMismatch,
CertificateNotYetValid,
CertificatePublicKeyInvalid,
CertificateSignatureAlgorithmMismatch,
CertificateSignatureAlgorithmUnsupported,
CertificateSignatureInvalid,
CertificateSignatureInvalidLength,
CertificateSignatureNamedCurveUnsupported,
CertificateSignatureUnsupportedBitCount,
CertificateTimeInvalid,
} || ParseVersionError;
 
pub const Algorithm = enum {
sha1WithRSAEncryption,
sha224WithRSAEncryption,
@@ -704,7 +723,10 @@ fn parseEnum(comptime E: type, bytes: []const u8, element: der.Element) ParseEnu
return E.map.get(oid_bytes) orelse return error.CertificateHasUnrecognizedObjectId;
}
 
pub const ParseVersionError = error{ UnsupportedCertificateVersion, CertificateFieldHasInvalidLength };
pub const ParseVersionError = error{
CertificateUnsupportedVersion,
CertificateFieldHasInvalidLength,
};
 
pub fn parseVersion(bytes: []const u8, version_elem: der.Element) ParseVersionError!Version {
if (@as(u8, @bitCast(version_elem.identifier)) != 0xa0)
@@ -723,7 +745,7 @@ pub fn parseVersion(bytes: []const u8, version_elem: der.Element) ParseVersionEr
return .v1;
}
 
return error.UnsupportedCertificateVersion;
return error.CertificateUnsupportedVersion;
}
 
fn verifyRsa(
 
lib/std/crypto/tls/Client.zig added: 27, removed: 22, total 5
@@ -89,7 +89,7 @@ pub const StreamInterface = struct {
};
 
pub fn InitError(comptime Stream: type) type {
return std.mem.Allocator.Error || Stream.WriteError || Stream.ReadError || tls.AlertDescription.Error || error{
return std.mem.Allocator.Error || Stream.WriteError || Stream.ReadError || tls.AlertDescription.Error || Certificate.Error || error{
InsufficientEntropy,
DiskQuota,
LockViolation,
@@ -99,19 +99,6 @@ pub fn InitError(comptime Stream: type) type {
TlsDecryptFailure,
TlsRecordOverflow,
TlsBadRecordMac,
CertificateFieldHasInvalidLength,
CertificateHostMismatch,
CertificatePublicKeyInvalid,
CertificateExpired,
CertificateFieldHasWrongDataType,
CertificateIssuerMismatch,
CertificateNotYetValid,
CertificateSignatureAlgorithmMismatch,
CertificateSignatureAlgorithmUnsupported,
CertificateSignatureInvalid,
CertificateSignatureInvalidLength,
CertificateSignatureNamedCurveUnsupported,
CertificateSignatureUnsupportedBitCount,
TlsCertificateNotVerified,
TlsBadSignatureScheme,
TlsBadRsaSignatureBitCount,
@@ -121,10 +108,6 @@ pub fn InitError(comptime Stream: type) type {
TlsDecryptError,
TlsConnectionTruncated,
TlsDecodeError,
UnsupportedCertificateVersion,
CertificateTimeInvalid,
CertificateHasUnrecognizedObjectId,
CertificateHasInvalidBitString,
MessageTooLong,
NegativeIntoUnsigned,
TargetTooSmall,