File: constants.py

package info (click to toggle)
python-gnutls 3.1.2-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 344 kB
  • sloc: python: 3,170; makefile: 2
file content (37 lines) | stat: -rw-r--r-- 964 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

"""GNUTLS constants"""

__all__ = [
    ## Credential types
    'CRED_CERTIFICATE', 'CRED_ANON',

    ## X509 certificate/private key formats
    'X509_FMT_DER', 'X509_FMT_PEM',

    ## Miscellaneous
    'CERT_REQUEST', 'CERT_REQUIRE', 'SHUT_RDWR', 'SHUT_WR'
]

__name_map__ = {
    'PROTO_TLS1_2': 'TLS1_2', 'PROTO_TLS1_1': 'TLS1_1', 'PROTO_TLS1_0': 'TLS1_0',
    'PROTO_SSL3': 'SSL3', 'CRED_CERTIFICATE': 'CRD_CERTIFICATE', 'CRED_ANON': 'CRD_ANON'
}


from gnutls.library import constants

class GNUTLSConstant(int):
    def __new__(cls, name):
        gnutls_name = 'GNUTLS_' + __name_map__.get(name, name)
        instance = int.__new__(cls, getattr(constants, gnutls_name))
        instance.name = name
        return instance
    def __repr__(self):
        return self.name

## Generate all exported constants
code = '\n'.join(["%s = GNUTLSConstant('%s')" % (name, name) for name in __all__])
exec code in locals(), globals()
del code, name

del constants