github.com/icodeface/tls@v0.0.0-20230910023335-34df9250cd12/alert.go (about)

     1  // Copyright 2009 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package tls
     6  
     7  import "strconv"
     8  
     9  type alert uint8
    10  
    11  const (
    12  	// alert level
    13  	alertLevelWarning = 1
    14  	alertLevelError   = 2
    15  )
    16  
    17  const (
    18  	alertCloseNotify            alert = 0
    19  	alertUnexpectedMessage      alert = 10
    20  	alertBadRecordMAC           alert = 20
    21  	alertDecryptionFailed       alert = 21
    22  	alertRecordOverflow         alert = 22
    23  	alertDecompressionFailure   alert = 30
    24  	alertHandshakeFailure       alert = 40
    25  	alertBadCertificate         alert = 42
    26  	alertUnsupportedCertificate alert = 43
    27  	alertCertificateRevoked     alert = 44
    28  	alertCertificateExpired     alert = 45
    29  	alertCertificateUnknown     alert = 46
    30  	alertIllegalParameter       alert = 47
    31  	alertUnknownCA              alert = 48
    32  	alertAccessDenied           alert = 49
    33  	alertDecodeError            alert = 50
    34  	alertDecryptError           alert = 51
    35  	alertProtocolVersion        alert = 70
    36  	alertInsufficientSecurity   alert = 71
    37  	alertInternalError          alert = 80
    38  	alertInappropriateFallback  alert = 86
    39  	alertUserCanceled           alert = 90
    40  	alertNoRenegotiation        alert = 100
    41  	alertMissingExtension       alert = 109
    42  	alertUnsupportedExtension   alert = 110
    43  	alertNoApplicationProtocol  alert = 120
    44  )
    45  
    46  var alertText = map[alert]string{
    47  	alertCloseNotify:            "close notify",
    48  	alertUnexpectedMessage:      "unexpected message",
    49  	alertBadRecordMAC:           "bad record MAC",
    50  	alertDecryptionFailed:       "decryption failed",
    51  	alertRecordOverflow:         "record overflow",
    52  	alertDecompressionFailure:   "decompression failure",
    53  	alertHandshakeFailure:       "handshake failure",
    54  	alertBadCertificate:         "bad certificate",
    55  	alertUnsupportedCertificate: "unsupported certificate",
    56  	alertCertificateRevoked:     "revoked certificate",
    57  	alertCertificateExpired:     "expired certificate",
    58  	alertCertificateUnknown:     "unknown certificate",
    59  	alertIllegalParameter:       "illegal parameter",
    60  	alertUnknownCA:              "unknown certificate authority",
    61  	alertAccessDenied:           "access denied",
    62  	alertDecodeError:            "error decoding message",
    63  	alertDecryptError:           "error decrypting message",
    64  	alertProtocolVersion:        "protocol version not supported",
    65  	alertInsufficientSecurity:   "insufficient security level",
    66  	alertInternalError:          "internal error",
    67  	alertInappropriateFallback:  "inappropriate fallback",
    68  	alertUserCanceled:           "user canceled",
    69  	alertNoRenegotiation:        "no renegotiation",
    70  	alertMissingExtension:       "missing extension",
    71  	alertUnsupportedExtension:   "unsupported extension",
    72  	alertNoApplicationProtocol:  "no application protocol",
    73  }
    74  
    75  func (e alert) String() string {
    76  	s, ok := alertText[e]
    77  	if ok {
    78  		return "tls: " + s
    79  	}
    80  	return "tls: alert(" + strconv.Itoa(int(e)) + ")"
    81  }
    82  
    83  func (e alert) Error() string {
    84  	return e.String()
    85  }