alert.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. package tls
  5. import "strconv"
  6. type alert uint8
  7. const (
  8. // alert level
  9. alertLevelWarning = 1
  10. alertLevelError = 2
  11. )
  12. const (
  13. alertCloseNotify alert = 0
  14. alertUnexpectedMessage alert = 10
  15. alertBadRecordMAC alert = 20
  16. alertDecryptionFailed alert = 21
  17. alertRecordOverflow alert = 22
  18. alertDecompressionFailure alert = 30
  19. alertHandshakeFailure alert = 40
  20. alertBadCertificate alert = 42
  21. alertUnsupportedCertificate alert = 43
  22. alertCertificateRevoked alert = 44
  23. alertCertificateExpired alert = 45
  24. alertCertificateUnknown alert = 46
  25. alertIllegalParameter alert = 47
  26. alertUnknownCA alert = 48
  27. alertAccessDenied alert = 49
  28. alertDecodeError alert = 50
  29. alertDecryptError alert = 51
  30. alertExportRestriction alert = 60
  31. alertProtocolVersion alert = 70
  32. alertInsufficientSecurity alert = 71
  33. alertInternalError alert = 80
  34. alertInappropriateFallback alert = 86
  35. alertUserCanceled alert = 90
  36. alertNoRenegotiation alert = 100
  37. alertMissingExtension alert = 109
  38. alertUnsupportedExtension alert = 110
  39. alertCertificateUnobtainable alert = 111
  40. alertUnrecognizedName alert = 112
  41. alertBadCertificateStatusResponse alert = 113
  42. alertBadCertificateHashValue alert = 114
  43. alertUnknownPSKIdentity alert = 115
  44. alertCertificateRequired alert = 116
  45. alertNoApplicationProtocol alert = 120
  46. )
  47. var alertText = map[alert]string{
  48. alertCloseNotify: "close notify",
  49. alertUnexpectedMessage: "unexpected message",
  50. alertBadRecordMAC: "bad record MAC",
  51. alertDecryptionFailed: "decryption failed",
  52. alertRecordOverflow: "record overflow",
  53. alertDecompressionFailure: "decompression failure",
  54. alertHandshakeFailure: "handshake failure",
  55. alertBadCertificate: "bad certificate",
  56. alertUnsupportedCertificate: "unsupported certificate",
  57. alertCertificateRevoked: "revoked certificate",
  58. alertCertificateExpired: "expired certificate",
  59. alertCertificateUnknown: "unknown certificate",
  60. alertIllegalParameter: "illegal parameter",
  61. alertUnknownCA: "unknown certificate authority",
  62. alertAccessDenied: "access denied",
  63. alertDecodeError: "error decoding message",
  64. alertDecryptError: "error decrypting message",
  65. alertExportRestriction: "export restriction",
  66. alertProtocolVersion: "protocol version not supported",
  67. alertInsufficientSecurity: "insufficient security level",
  68. alertInternalError: "internal error",
  69. alertInappropriateFallback: "inappropriate fallback",
  70. alertUserCanceled: "user canceled",
  71. alertNoRenegotiation: "no renegotiation",
  72. alertMissingExtension: "missing extension",
  73. alertUnsupportedExtension: "unsupported extension",
  74. alertCertificateUnobtainable: "certificate unobtainable",
  75. alertUnrecognizedName: "unrecognized name",
  76. alertBadCertificateStatusResponse: "bad certificate status response",
  77. alertBadCertificateHashValue: "bad certificate hash value",
  78. alertUnknownPSKIdentity: "unknown PSK identity",
  79. alertCertificateRequired: "certificate required",
  80. alertNoApplicationProtocol: "no application protocol",
  81. }
  82. func (e alert) String() string {
  83. s, ok := alertText[e]
  84. if ok {
  85. return "tls: " + s
  86. }
  87. return "tls: alert(" + strconv.Itoa(int(e)) + ")"
  88. }
  89. func (e alert) Error() string {
  90. return e.String()
  91. }