mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-27 10:26:23 +00:00
65 lines
1.6 KiB
Python
65 lines
1.6 KiB
Python
|
# This file is dual licensed under the terms of the Apache License, Version
|
||
|
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
||
|
# for complete details.
|
||
|
|
||
|
from __future__ import absolute_import, division, print_function
|
||
|
|
||
|
from enum import Enum
|
||
|
|
||
|
from characteristic import attributes
|
||
|
|
||
|
from . import _constructs
|
||
|
|
||
|
|
||
|
class AlertLevel(Enum):
|
||
|
WARNING = 1
|
||
|
FATAL = 2
|
||
|
|
||
|
|
||
|
class AlertDescription(Enum):
|
||
|
CLOSE_NOTIFY = 0
|
||
|
UNEXPECTED_MESSAGE = 10
|
||
|
BAD_RECORD_MAC = 20
|
||
|
DECRYPTION_FAILED_RESERVED = 21
|
||
|
RECORD_OVERFLOW = 22
|
||
|
DECOMPRESSION_FAILURE = 30
|
||
|
HANDSHAKE_FAILURE = 40
|
||
|
NO_CERTIFICATE_RESERVED = 41
|
||
|
BAD_CERTIFICATE = 42
|
||
|
UNSUPPORTED_CERTIFICATE = 43
|
||
|
CERTIFICATE_REVOKED = 44
|
||
|
CERTIFICATE_EXPIRED = 45
|
||
|
CERTIFICATE_UNKNOWN = 46
|
||
|
ILLEGAL_PARAMETER = 47
|
||
|
UNKNOWN_CA = 48
|
||
|
ACCESS_DENIED = 49
|
||
|
DECODE_ERROR = 50
|
||
|
DECRYPT_ERROR = 51
|
||
|
EXPORT_RESTRICTION_RESERVED = 60
|
||
|
PROTOCOL_VERSION = 70
|
||
|
INSUFFICIENT_SECURITY = 71
|
||
|
INTERNAL_ERROR = 80
|
||
|
USER_CANCELED = 90
|
||
|
NO_RENEGOTIATION = 100
|
||
|
UNSUPPORTED_EXTENSION = 110
|
||
|
|
||
|
|
||
|
@attributes(['level', 'description'])
|
||
|
class Alert(object):
|
||
|
"""
|
||
|
An object representing an Alert message.
|
||
|
"""
|
||
|
@classmethod
|
||
|
def from_bytes(cls, bytes):
|
||
|
"""
|
||
|
Parse an ``Alert`` struct.
|
||
|
|
||
|
:param bytes: the bytes representing the input.
|
||
|
:return: Alert object.
|
||
|
"""
|
||
|
construct = _constructs.Alert.parse(bytes)
|
||
|
return cls(
|
||
|
level=AlertLevel(construct.level),
|
||
|
description=AlertDescription(construct.description)
|
||
|
)
|