e89292ccbe
Draft 21 changed end_of_early_data from an alert into a handshake message to allow it to integrate better with the handshake. This change does that, rather than handling EOD at the record layer, it moves processing up to the actual readers of (early) application data.
83 lines
2.8 KiB
Go
83 lines
2.8 KiB
Go
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package tls
|
|
|
|
import "strconv"
|
|
|
|
type alert uint8
|
|
|
|
const (
|
|
// alert level
|
|
alertLevelWarning = 1
|
|
alertLevelError = 2
|
|
)
|
|
|
|
const (
|
|
alertCloseNotify alert = 0
|
|
alertUnexpectedMessage alert = 10
|
|
alertBadRecordMAC alert = 20
|
|
alertDecryptionFailed alert = 21
|
|
alertRecordOverflow alert = 22
|
|
alertDecompressionFailure alert = 30
|
|
alertHandshakeFailure alert = 40
|
|
alertBadCertificate alert = 42
|
|
alertUnsupportedCertificate alert = 43
|
|
alertCertificateRevoked alert = 44
|
|
alertCertificateExpired alert = 45
|
|
alertCertificateUnknown alert = 46
|
|
alertIllegalParameter alert = 47
|
|
alertUnknownCA alert = 48
|
|
alertAccessDenied alert = 49
|
|
alertDecodeError alert = 50
|
|
alertDecryptError alert = 51
|
|
alertProtocolVersion alert = 70
|
|
alertInsufficientSecurity alert = 71
|
|
alertInternalError alert = 80
|
|
alertInappropriateFallback alert = 86
|
|
alertUserCanceled alert = 90
|
|
alertNoRenegotiation alert = 100
|
|
alertNoApplicationProtocol alert = 120
|
|
alertSuccess alert = 255 // dummy value returned by unmarshal functions
|
|
)
|
|
|
|
var alertText = map[alert]string{
|
|
alertCloseNotify: "close notify",
|
|
alertUnexpectedMessage: "unexpected message",
|
|
alertBadRecordMAC: "bad record MAC",
|
|
alertDecryptionFailed: "decryption failed",
|
|
alertRecordOverflow: "record overflow",
|
|
alertDecompressionFailure: "decompression failure",
|
|
alertHandshakeFailure: "handshake failure",
|
|
alertBadCertificate: "bad certificate",
|
|
alertUnsupportedCertificate: "unsupported certificate",
|
|
alertCertificateRevoked: "revoked certificate",
|
|
alertCertificateExpired: "expired certificate",
|
|
alertCertificateUnknown: "unknown certificate",
|
|
alertIllegalParameter: "illegal parameter",
|
|
alertUnknownCA: "unknown certificate authority",
|
|
alertAccessDenied: "access denied",
|
|
alertDecodeError: "error decoding message",
|
|
alertDecryptError: "error decrypting message",
|
|
alertProtocolVersion: "protocol version not supported",
|
|
alertInsufficientSecurity: "insufficient security level",
|
|
alertInternalError: "internal error",
|
|
alertInappropriateFallback: "inappropriate fallback",
|
|
alertUserCanceled: "user canceled",
|
|
alertNoRenegotiation: "no renegotiation",
|
|
alertNoApplicationProtocol: "no application protocol",
|
|
}
|
|
|
|
func (e alert) String() string {
|
|
s, ok := alertText[e]
|
|
if ok {
|
|
return "tls: " + s
|
|
}
|
|
return "tls: alert(" + strconv.Itoa(int(e)) + ")"
|
|
}
|
|
|
|
func (e alert) Error() string {
|
|
return e.String()
|
|
}
|