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