Home | History | Annotate | Download | only in tls
      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 	alertNoApplicationProtocol  alert = 120
     42 )
     43 
     44 var alertText = map[alert]string{
     45 	alertCloseNotify:            "close notify",
     46 	alertUnexpectedMessage:      "unexpected message",
     47 	alertBadRecordMAC:           "bad record MAC",
     48 	alertDecryptionFailed:       "decryption failed",
     49 	alertRecordOverflow:         "record overflow",
     50 	alertDecompressionFailure:   "decompression failure",
     51 	alertHandshakeFailure:       "handshake failure",
     52 	alertBadCertificate:         "bad certificate",
     53 	alertUnsupportedCertificate: "unsupported certificate",
     54 	alertCertificateRevoked:     "revoked certificate",
     55 	alertCertificateExpired:     "expired certificate",
     56 	alertCertificateUnknown:     "unknown certificate",
     57 	alertIllegalParameter:       "illegal parameter",
     58 	alertUnknownCA:              "unknown certificate authority",
     59 	alertAccessDenied:           "access denied",
     60 	alertDecodeError:            "error decoding message",
     61 	alertDecryptError:           "error decrypting message",
     62 	alertProtocolVersion:        "protocol version not supported",
     63 	alertInsufficientSecurity:   "insufficient security level",
     64 	alertInternalError:          "internal error",
     65 	alertInappropriateFallback:  "inappropriate fallback",
     66 	alertUserCanceled:           "user canceled",
     67 	alertNoRenegotiation:        "no renegotiation",
     68 	alertNoApplicationProtocol:  "no application protocol",
     69 }
     70 
     71 func (e alert) String() string {
     72 	s, ok := alertText[e]
     73 	if ok {
     74 		return "tls: " + s
     75 	}
     76 	return "tls: alert(" + strconv.Itoa(int(e)) + ")"
     77 }
     78 
     79 func (e alert) Error() string {
     80 	return e.String()
     81 }
     82