Alternative TLS implementation in Go
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.9 KiB

  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. alertProtocolVersion alert = 70
  31. alertInsufficientSecurity alert = 71
  32. alertInternalError alert = 80
  33. alertInappropriateFallback alert = 86
  34. alertUserCanceled alert = 90
  35. alertNoRenegotiation alert = 100
  36. alertUnsupportedExtension alert = 110
  37. alertCertificateRequired alert = 116
  38. alertNoApplicationProtocol alert = 120
  39. alertSuccess alert = 255 // dummy value returned by unmarshal functions
  40. )
  41. var alertText = map[alert]string{
  42. alertCloseNotify: "close notify",
  43. alertUnexpectedMessage: "unexpected message",
  44. alertBadRecordMAC: "bad record MAC",
  45. alertDecryptionFailed: "decryption failed",
  46. alertRecordOverflow: "record overflow",
  47. alertDecompressionFailure: "decompression failure",
  48. alertHandshakeFailure: "handshake failure",
  49. alertBadCertificate: "bad certificate",
  50. alertUnsupportedCertificate: "unsupported certificate",
  51. alertCertificateRevoked: "revoked certificate",
  52. alertCertificateExpired: "expired certificate",
  53. alertCertificateUnknown: "unknown certificate",
  54. alertIllegalParameter: "illegal parameter",
  55. alertUnknownCA: "unknown certificate authority",
  56. alertAccessDenied: "access denied",
  57. alertDecodeError: "error decoding message",
  58. alertDecryptError: "error decrypting message",
  59. alertProtocolVersion: "protocol version not supported",
  60. alertInsufficientSecurity: "insufficient security level",
  61. alertInternalError: "internal error",
  62. alertInappropriateFallback: "inappropriate fallback",
  63. alertUserCanceled: "user canceled",
  64. alertNoRenegotiation: "no renegotiation",
  65. alertNoApplicationProtocol: "no application protocol",
  66. }
  67. func (e alert) String() string {
  68. s, ok := alertText[e]
  69. if ok {
  70. return "tls: " + s
  71. }
  72. return "tls: alert(" + strconv.Itoa(int(e)) + ")"
  73. }
  74. func (e alert) Error() string {
  75. return e.String()
  76. }