def test_b2a_hqx_a2b_hqx_round_trip(self, payload):
     # assuming len(payload) as 3, since it throws exception: binascii.Incomplete, when length is not a multiple of 3
     if len(payload) % 3:
         with self.assertRaises(binascii.Incomplete):
             x = binascii.b2a_hqx(payload)
             binascii.a2b_hqx(x)
         payload += b"\x00" * (-len(payload) % 3)
     x = binascii.b2a_hqx(payload)
     res, _ = binascii.a2b_hqx(x)
     self.assertEqual(payload, res)
Ejemplo n.º 2
0
 def args_serializer(self, *args, **kwargs):
     args_bytes = pickle.dumps((args, kwargs))
     args_ascii = b'P' + binascii.b2a_hqx(args_bytes)
     if len(args_ascii) >= self.MAX_KEY_LENGTH:
         args_hash = b''.join([
             hashlib.sha256(args_bytes).digest(),
             hashlib.sha1(args_bytes).digest(),
             hashlib.sha512(args_bytes).digest(),
             hashlib.md5(args_bytes).digest()
         ])
         args_ascii = b'H' + binascii.b2a_hqx(args_hash)
     return args_ascii
Ejemplo n.º 3
0
 def args_serializer(self, *args, **kwargs):
     args_bytes = pickle.dumps((args, kwargs))
     args_ascii = binascii.b2a_hqx(args_bytes)
     if len(args_ascii) >= self.SERIALIZE_LENGTH_THRESHOLD:
         args_hash = b''.join([
             hashlib.sha256(args_bytes).digest(),
             hashlib.sha1(args_bytes).digest(),
             hashlib.sha512(args_bytes).digest(),
             hashlib.md5(args_bytes).digest()
         ])
         args_ascii = binascii.b2a_hqx(args_hash)
     return args_ascii
Ejemplo n.º 4
0
 def close(self):
     if self.data:
         with _ignore_deprecation_warning():
             self.hqxdata = self.hqxdata + binascii.b2a_hqx(self.data)
     self._flush(1)
     self.ofp.close()
     del self.ofp
Ejemplo n.º 5
0
 def close(self):
     if self.data:
         self.hqxdata = \
              self.hqxdata + binascii.b2a_hqx(self.data)
     self._flush(1)
     self.ofp.close()
     del self.ofp
    def create(self, args, config, connection):
        name = args['name']
        password = args['password']

        if args['json'] is not None:
            user = self._read(name,
                              password,
                              args['json'],
                              connection=connection)
            name = user.user_name()
        else:
            user = User(name, password, connection=connection)

        if 'password' not in user._config:
            user._config['password'] = str(b2a_hqx(urandom(64)))

        if user.exists():
            print("Error: User already exists: {0}".format(args['name']))
            sys.exit(1)

        self.roles = []
        self._properties(user, args)
        if len(self.roles) > 0:
            user.set_role_names(self.roles)

        print("Create user {0}...".format(args['name']))
        user.create()
Ejemplo n.º 7
0
 def close(self):
     if self.data:
         self.hqxdata = \
              self.hqxdata + binascii.b2a_hqx(self.data)
     self._flush(1)
     self.ofp.close()
     del self.ofp
Ejemplo n.º 8
0
def hashbuf(buf):
    hasher = hashlib.sha1()
    bb = bytes(buf, 'utf-8')
    BLOCK_SIZE = 65536
    for i in range(0, math.ceil(len(bb) / BLOCK_SIZE)):
        data = binascii.b2a_hqx(bb[i * BLOCK_SIZE:(i + 1) * BLOCK_SIZE])
        hasher.update(data)
    return hasher.hexdigest()
Ejemplo n.º 9
0
    def test_hqx(self):
        # Perform binhex4 style RLE-compression
        # Then calculate the hexbin4 binary-to-ASCII translation
        rle = binascii.rlecode_hqx(self.data)
        a = binascii.b2a_hqx(self.type2test(rle))

        b, _ = binascii.a2b_hqx(self.type2test(a))
        res = binascii.rledecode_hqx(b)
        self.assertEqual(res, self.rawdata)
Ejemplo n.º 10
0
 def test_not_implemented(self):
     test_cases = [
         lambda: binascii.a2b_hqx(None),
         lambda: binascii.rledecode_hqx(None),
         lambda: binascii.rlecode_hqx(None),
         lambda: binascii.b2a_hqx(None),
     ]
     for temp_func in test_cases:
         self.assertRaises(NotImplementedError, temp_func)
Ejemplo n.º 11
0
    def test_hqx(self):
        # Perform binhex4 style RLE-compression
        # Then calculate the hexbin4 binary-to-ASCII translation
        rle = binascii.rlecode_hqx(self.data)
        a = binascii.b2a_hqx(self.type2test(rle))

        b, _ = binascii.a2b_hqx(self.type2test(a))
        res = binascii.rledecode_hqx(b)
        self.assertEqual(res, self.rawdata)
Ejemplo n.º 12
0
def PSKgen(ID, PSKpath):

    # b2a_hqx output len is 4/3 input len
    secret = os.urandom(192)  # int(256/1.3333)
    secretstring = b2a_hqx(secret)

    PSKstring = ID+":"+secretstring
    with open(PSKpath, 'w') as f:
        f.write(PSKstring)
    restartStunnel()
Ejemplo n.º 13
0
 def write(self, data):
     self.data = self.data + data
     datalen = len(self.data)
     todo = datalen // 3 * 3
     data = self.data[:todo]
     self.data = self.data[todo:]
     if not data:
         return
     self.hqxdata = self.hqxdata + binascii.b2a_hqx(data)
     self._flush(0)
Ejemplo n.º 14
0
 def write(self, data):
     self.data = self.data + data
     datalen = len(self.data)
     todo = (datalen / 3) * 3
     data = self.data[:todo]
     self.data = self.data[todo:]
     if not data:
         return
     self.hqxdata = self.hqxdata + binascii.b2a_hqx(data)
     self._flush(0)
Ejemplo n.º 15
0
    def test_hqx(self):
        # Perform binhex4 style RLE-compression
        # Then calculate the hexbin4 binary-to-ASCII translation
        if test_support.due_to_ironpython_bug("http://ironpython.codeplex.com/workitem/28171"):
            return
        rle = binascii.rlecode_hqx(self.data)
        a = binascii.b2a_hqx(self.type2test(rle))
        b, _ = binascii.a2b_hqx(self.type2test(a))
        res = binascii.rledecode_hqx(b)

        self.assertEqual(res, self.rawdata)
    def test_deprecated_warnings(self):
        with self.assertWarns(DeprecationWarning):
            self.assertEqual(binascii.b2a_hqx(b'abc'), b'B@*M')
        with self.assertWarns(DeprecationWarning):
            self.assertEqual(binascii.a2b_hqx(b'B@*M'), (b'abc', 0))

        with self.assertWarns(DeprecationWarning):
            self.assertEqual(binascii.rlecode_hqx(b'a' * 10), b'a\x90\n')

        with self.assertWarns(DeprecationWarning):
            self.assertEqual(binascii.rledecode_hqx(b'a\x90\n'), b'a' * 10)
Ejemplo n.º 17
0
 def write(self, data):
     self.data = self.data + data
     datalen = len(self.data)
     todo = (datalen // 3) * 3
     data = self.data[:todo]
     self.data = self.data[todo:]
     if not data:
         return
     with _ignore_deprecation_warning():
         self.hqxdata = self.hqxdata + binascii.b2a_hqx(data)
     self._flush(0)
Ejemplo n.º 18
0
    def test_hqx(self):
        # Perform binhex4 style RLE-compression
        # Then calculate the hexbin4 binary-to-ASCII translation
        if test_support.due_to_ironpython_bug(
                "http://ironpython.codeplex.com/workitem/28171"):
            return
        rle = binascii.rlecode_hqx(self.data)
        a = binascii.b2a_hqx(self.type2test(rle))
        b, _ = binascii.a2b_hqx(self.type2test(a))
        res = binascii.rledecode_hqx(b)

        self.assertEqual(res, self.rawdata)
Ejemplo n.º 19
0
 def test_not_implemented(self):
     test_cases = [
                     lambda: binascii.a2b_qp(None),
                     lambda: binascii.a2b_qp(None, None),
                     lambda: binascii.a2b_hqx(None),
                     lambda: binascii.rledecode_hqx(None),
                     lambda: binascii.rlecode_hqx(None),
                     lambda: binascii.b2a_hqx(None),
                     lambda: binascii.crc_hqx(None, None),
                     ]
     for temp_func in test_cases:
         self.assertRaises(NotImplementedError, temp_func)
Ejemplo n.º 20
0
def test_not_implemented():
    test_cases = [
        lambda: binascii.a2b_qp(None),
        lambda: binascii.a2b_qp(None, None),
        lambda: binascii.a2b_hqx(None),
        lambda: binascii.rledecode_hqx(None),
        lambda: binascii.rlecode_hqx(None),
        lambda: binascii.b2a_hqx(None),
        lambda: binascii.crc_hqx(None, None),
    ]
    for temp_func in test_cases:
        AssertError(NotImplementedError, temp_func)
def encode(encoding, fields):
    #encoding: An encoding
    for field in fields:
        if encoding == 'base64':
            field.value = binascii.b2a_base64(field.value)
        elif encoding == 'hex':
            field.value = binascii.b2a_hex(field.value).upper()
        elif encoding == 'hqx':
            field.value = binascii.b2a_hqx(field.value)
        elif encoding == 'qp':
            field.value = binascii.b2a_qp(field.value)
        elif encoding == 'uu':
            field.value = binascii.b2a_uu(field.value)
        yield field
Ejemplo n.º 22
0
def encode(encoding, fields):
    #encoding: An encoding
    for field in fields:
        if encoding == 'base64':
            field.value = binascii.b2a_base64(field.value)
        elif encoding == 'hex':
            field.value = binascii.b2a_hex(field.value).upper()
        elif encoding == 'hqx':
            field.value = binascii.b2a_hqx(field.value)
        elif encoding == 'qp':
            field.value = binascii.b2a_qp(field.value)
        elif encoding == 'uu':
            field.value = binascii.b2a_uu(field.value)
        yield field
Ejemplo n.º 23
0
def secret_key():
    """ Get secret key from datastore.

        Read Secret Key from db. If one does not exist, create one
        and the event gets logged since this is an important security event
    """
    secret_check = ndb.gql("SELECT key_string FROM Secret")
    key = secret_check.get()
    if key:  # if key is present return it
        return key.key_string
    else:  # if not make one and return/store it
        new_key = binascii.b2a_hqx(os.urandom(64))  # 64-bits of ASCII
        k = Secret(key_string=new_key)
        k.put()
        logging.critical("A NEW SECRET KEY HAS BEEN CREATED FOR HMAC")
        return new_key
Ejemplo n.º 24
0
def default_configuration(app):

    setdefault(app.config, 'PRODUCTION', True)
    setdefault(app.config, 'MONGODB_HOST', os.environ.get('MONGODB_HOST'))
    setdefault(app.config, 'MONGODB_PORT', int(os.environ.get('MONGODB_PORT')))
    setdefault(app.config, 'MONGODB_DATABASE', os.environ.get('MONGODB_DATABASE'))
    setdefault(app.config, 'MONGODB_USERNAME', os.environ.get('MONGODB_USERNAME'))
    setdefault(app.config, 'MONGODB_PASSWORD', os.environ.get('MONGODB_PASSWORD'))

    setdefault(app.config, 'CACHE_MEMCACHED_SERVERS', 
            ["%s:%s@%s" % (
                os.environ.get('MEMCACHE_USERNAME'), 
                os.environ.get('MEMCACHE_PASSWORD'),
                os.environ.get('MEMCACHE_SERVERS')
                    )
                ]
        )
    setdefault(app.config, 'SECRET_KEY', binascii.b2a_hqx(os.urandom(42)))
Ejemplo n.º 25
0
def default_configuration(app):

    setdefault(app.config, 'PRODUCTION', True)
    setdefault(app.config, 'MONGODB_HOST', os.environ.get('MONGODB_HOST'))
    setdefault(app.config, 'MONGODB_PORT', int(os.environ.get('MONGODB_PORT')))
    setdefault(app.config, 'MONGODB_DATABASE',
               os.environ.get('MONGODB_DATABASE'))
    setdefault(app.config, 'MONGODB_USERNAME',
               os.environ.get('MONGODB_USERNAME'))
    setdefault(app.config, 'MONGODB_PASSWORD',
               os.environ.get('MONGODB_PASSWORD'))

    setdefault(app.config, 'CACHE_MEMCACHED_SERVERS', [
        "%s:%s@%s" % (os.environ.get('MEMCACHE_USERNAME'),
                      os.environ.get('MEMCACHE_PASSWORD'),
                      os.environ.get('MEMCACHE_SERVERS'))
    ])
    setdefault(app.config, 'SECRET_KEY', binascii.b2a_hqx(os.urandom(42)))
Ejemplo n.º 26
0
def get_settings():

    settings = dict()
    # Prompt User for Settings
    pblue("Enter your environment settings.")
    settings['PRODUCTION'] = False
    if confirm(blue("Are these settings for a production server?")):
        settings['PRODUCTION'] = True

    puts('')
    pblue('##### ADMIN SETUP #####')
    settings['ADMIN_USERNAME'] = prompt(magenta('ADMIN_USERNAME:'******'ADMIN_PASSWORD:'******'ADMIN_PASSWORD_HASH'] = admin_password_hashed

    puts('')
    pblue('##### DATABASE SETUP #####')
    settings['MONGODB_HOST'] = prompt(magenta('MONGODB_HOST:'))
    settings['MONGODB_PORT'] = prompt(magenta('MONGODB_PORT:'))
    settings['MONGODB_DATABASE'] = prompt(magenta('MONGODB_DATABASE:'))
    settings['MONGODB_USERNAME'] = prompt(magenta('MONGODB_USERNAME:'******'MONGODB_PASSWORD'] = prompt(magenta('MONGODB_PASSWORD:'******'')
    pblue('##### MAIL SETUP #####')
    settings['MAIL_SERVER'] = prompt(magenta('MAIL_SERVER:'))
    settings['MAIL_PORT'] = prompt(magenta('MAIL_PORT:'))
    settings['MAIL_USERNAME'] = prompt(magenta('MAIL_USERNAME:'******'MAIL_PASSWORD'] = prompt(magenta('MAIL_PASSWORD:'******'MAILGUN_API_KEY'] = prompt(magenta('MAIL_API_KEY:'))

    puts('')
    pblue('##### MEMCACHE SETUP #####')
    settings['MEMCACHE_SERVER'] = prompt(magenta('MEMCACHE_SERVER:'))
    settings['MEMCACHE_USERNAME'] = prompt(magenta('MEMCACHE_USERNAME:'******'MEMCACHE_PASSWORD'] = prompt(magenta('MEMCACHE_PASSWORD:'******'\nSECRET KEY: %s' % secret_key)
    if confirm(yellow("Verify everything looks correct?")):
        settings['SECRET_KEY'] = secret_key
        return settings

    return None
Ejemplo n.º 27
0
def get_settings():

    settings = dict()
    # Prompt User for Settings
    pblue("Enter your environment settings.")
    settings['PRODUCTION'] = False
    if confirm(blue("Are these settings for a production server?")):
            settings['PRODUCTION'] = True

    puts('')
    pblue('##### ADMIN SETUP #####')
    settings['ADMIN_USERNAME'] = prompt(magenta('ADMIN_USERNAME:'******'ADMIN_PASSWORD:'******'ADMIN_PASSWORD_HASH'] = admin_password_hashed

    puts('')
    pblue('##### DATABASE SETUP #####')
    settings['MONGODB_HOST'] = prompt(magenta('MONGODB_HOST:'))
    settings['MONGODB_PORT'] = prompt(magenta('MONGODB_PORT:'))
    settings['MONGODB_DATABASE'] = prompt(magenta('MONGODB_DATABASE:'))
    settings['MONGODB_USERNAME'] = prompt(magenta('MONGODB_USERNAME:'******'MONGODB_PASSWORD'] = prompt(magenta('MONGODB_PASSWORD:'******'')
    pblue('##### MAIL SETUP #####')
    settings['MAIL_SERVER'] = prompt(magenta('MAIL_SERVER:'))
    settings['MAIL_PORT'] = prompt(magenta('MAIL_PORT:'))
    settings['MAIL_USERNAME'] = prompt(magenta('MAIL_USERNAME:'******'MAIL_PASSWORD'] = prompt(magenta('MAIL_PASSWORD:'******'MAILGUN_API_KEY'] = prompt(magenta('MAIL_API_KEY:')) 

    puts('')
    pblue('##### MEMCACHE SETUP #####')
    settings['MEMCACHE_SERVER'] = prompt(magenta('MEMCACHE_SERVER:'))
    settings['MEMCACHE_USERNAME'] = prompt(magenta('MEMCACHE_USERNAME:'******'MEMCACHE_PASSWORD'] = prompt(magenta('MEMCACHE_PASSWORD:'******'\nSECRET KEY: %s' % secret_key)
    if confirm(yellow("Verify everything looks correct?")):
        settings['SECRET_KEY'] = secret_key
        return settings

    return None
Ejemplo n.º 28
0
def make_settings():
    """ Creates a new settings.py """
    
    settings = dict()

    # Prompt User for Settings
    pblue("Enter your environment settings.")
    settings['PRODUCTION'] = False
    if confirm(blue("Are these settings for a production server?")):
            settings['PRODUCTION'] = True
    puts('')
    if confirm(yellow("Verify everything looks correct?")):
        settings['SECRET_KEY'] = binascii.b2a_hqx(os.urandom(42))

        with cd(env.PROJECT_ROOT):
            with prefix('workon ' % env.PROJECT_VENV): 
                upload_template('settings.py.template', 
                        os.path.join(env.PROJECT_ROOT, 'settings.py'), 
                        context=settings, use_jinja=True, backup=False)
Ejemplo n.º 29
0
def cmd_random(args):
    try:
        tamanho = 8
        response = list()
        ## Eu não faço args['command_list'][0] pra evitar IndexError
        ## Mas tem outras formas de testar isto, ler o manual do dict()
        argumento = ''.join(args['command_list'])
        if argumento:
            if argumento.isdigit(
            ) and int(argumento) <= 872 and int(argumento) > 2:
                tamanho = int(argumento)
            else:
                response.append(
                    u"Tamanho deve ser entre 1 e 872, %s não serve! Revertendo para %s...\n"
                    % (str(argumento), str(tamanho)))
        aleatorio = os.urandom(tamanho)
        response.append(u"<b>HEX</b>:\n<pre>%s</pre>\n" %
                        binascii.hexlify(aleatorio).decode('utf-8'))
        response.append(u"<b>B64</b>:\n<pre>%s</pre>" %
                        binascii.b2a_base64(aleatorio).decode('utf-8'))
        response.append(
            u"<b>HQX</b>:\n<pre>%s</pre>" %
            binascii.b2a_hqx(binascii.rlecode_hqx(aleatorio)).decode('utf-8'))
        return {
            'status': True,
            'type': 'grupo',
            'response': '\n'.join(response),
            'debug': u"Número aleatório gerado",
            'multi': False,
            'parse_mode': 'HTML',
            'reply_to_message_id': args['message_id'],
        }
    except Exception as e:
        return {
            'status': False,
            'type': 'erro',
            'response': u"Erro tentando gerar número aleatório.",
            'debug': u"Random falhou, exceção: %s" % (e),
            'multi': False,
            'parse_mode': None,
            'reply_to_message_id': args['message_id'],
        }
Ejemplo n.º 30
0
def create_settings():
    settings = {}
    pcyan("## Environment settings.")
    settings['PRODUCTION'] = False
    if confirm(blue("Are these settings for a production server?")):
        settings['PRODUCTION'] = True

    puts('')
    pcyan("## Database Info:")
    settings['MUSIC_DATABASE'] = prompt(blue("Absolute path to music database: "))
    settings['USERS_DATABASE'] = prompt(blue("Absolute path to users database: "))
    settings['MAIL_SERVER'] = prompt(blue("Mail server URI: "))

    secret_key = binascii.b2a_hqx(os.urandom(42))
    pred('\nSECRET_KEY: %s' % secret_key)
    if confirm(yellow("Verify everything looks correct?")):
        settings['SECRET_KEY'] = secret_key
        return settings

    return None
Ejemplo n.º 31
0
def create_settings():

    settings = dict()
    # Prompt User for Settings
    pblue("Enter your environment settings.")
    settings['PRODUCTION'] = False
    if confirm(blue("Are these settings for a production server?")):
            settings['PRODUCTION'] = True

    puts('')
    settings['MPD_HOST'] = prompt(magenta('MPD_HOST:'))
    settings['MPD_PORT'] = prompt(magenta('MPD_PORT:'))

    puts('')
    secret_key = binascii.b2a_hqx(os.urandom(42)) 
    pred('\nSECRET KEY: %s' % secret_key)
    if confirm(yellow("Verify everything looks correct?")):
        settings['SECRET_KEY'] = secret_key
        return settings

    return None
Ejemplo n.º 32
0
"""Macintosh binhex compression/decompression.
Ejemplo n.º 33
0
    def close(self):
		if self.data:
		    self.ofp.write(binascii.b2a_hqx(self.data))
		self.ofp.write(':\n')
		self.ofp.close()
Ejemplo n.º 34
0
	def random_ascii_string(self, size, salt=b''):
		'''Returns a random string containing ascii characters.'''
		return binascii.b2a_hqx(self.random(size, salt))[:size].decode()
Ejemplo n.º 35
0
import binascii
text = "hello, mrs teal"
data = binascii.b2a_base64(text)
text = binascii.a2b_base64(data)
print text, "<=>", repr(data)
data = binascii.b2a_uu(text)
text = binascii.a2b_uu(data)
print text, "<=>", repr(data)
data = binascii.b2a_hqx(text)
text = binascii.a2b_hqx(data)[0]
print text, "<=>", repr(data)
# 2.0 and newer
data = binascii.b2a_hex(text)
text = binascii.a2b_hex(data)
print text, "<=>", repr(data)
Ejemplo n.º 36
0
 def encode(self, s):
     return binascii.b2a_hqx(s)
Ejemplo n.º 37
0
"""Test deprecated methods from Python 3.9."""

import binascii
binascii.b2a_hqx()  # [deprecated-method]
Ejemplo n.º 38
0
 def test_hqx(self):
     rle = binascii.rlecode_hqx(self.data)
     a = binascii.b2a_hqx(self.type2test(rle))
     b, _ = binascii.a2b_hqx(self.type2test(a))
     res = binascii.rledecode_hqx(b)
     self.assertEqual(res, self.rawdata)
Ejemplo n.º 39
0
def getMd5(stringArray):
    returnArray = []
    for n in stringArray:
        returnArray.append("%s - %s" % (n, binascii.b2a_hqx(hashlib.md5(str(n)).digest())))

    return returnArray
Ejemplo n.º 40
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
## Cria uma senha pseudo aleatória boa pra criptografia

import binascii, os, sys

## Usar 8 como tamanho por omissão se nenhum parâmetro for fornecido
tamanho = 8

## Caso um número seja fornecido, use-o como tamanho
if len(sys.argv) > 1 and str(sys.argv[1]).isdigit():
  tamanho = int(sys.argv[1])

senha = os.urandom(tamanho)

print(u"HEX:\n%s\n" % binascii.hexlify(senha).decode('utf-8'))
print(u"B64:\n%s" % binascii.b2a_base64(senha).decode('utf-8'))
print(u"HQX:\n%s\n" % binascii.b2a_hqx(binascii.rlecode_hqx(senha)).decode('utf-8'))
Ejemplo n.º 41
0
 def write(self, data):
     self.data = self.data + data
     while len(self.data) > LINELEN:
         hqxdata = binascii.b2a_hqx(self.data[:LINELEN])
         self.ofp.write(hqxdata + '\n')
         self.data = self.data[LINELEN:]
Ejemplo n.º 42
0
 def close(self):
     if self.data:
         self.ofp.write(binascii.b2a_hqx(self.data))
     self.ofp.write(':\n')
     self.ofp.close()
Ejemplo n.º 43
0
import os
import socket
import paho.mqtt.client as mqtt
import struct
import binascii

ALERTMSG_LENGTH = 256
SNAPLEN = 1500
snort_mqtt = mqtt.Client()
snort_mqtt.connect("10.0.0.100")
snort_mqtt.loop_start()
s = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
format = "%ds9l%ds" % (ALERTMSG_LENGTH, SNAPLEN)
format_size = struct.calcsize(format)
try:
    os.remove("/var/log/snort/snort_alert")
except OSError:
    pass
s.bind("/var/log/snort/snort_alert")
#s.listen(3)
while True:
    data, addr = s.recvfrom(4096)
    msg, ts_sec, ts_usec, caplen, pktlen, dlthdr, nethdr, transhdr, data_snort, val, pkt = struct.unpack(
        format, data[:format_size])
    #print pkt
    print msg
    snort_mqtt.publish("snort/test", binascii.b2a_hqx(data))
conn.close()
Ejemplo n.º 44
0
"""Macintosh binhex compression/decompression.
Ejemplo n.º 45
0
    def thg_encode(self, args):
        """modulo referente a encode de estrings"""
        arg_mensage = args.split(" ")
        if arg_mensage[0] == "":
            print("""suporte encode:

Este módulo fornece funções para codificar dados binários em caracteres ASCII 
imprimíveis e decodificar essas codificações de volta para dados binários.
Ele fornece funções de codificação e decodificação para as codificações 
especificadas em RFC 3548 ,que define os algoritmos Base16, Base32 e Base64,
e para as codificações Ascii85 e Base85 padrão de fato.

a2b_uu
b2a_uu
a2b_base64
b2a_base64
a2b_qp
b2a_qp
a2b_hqx
rledecode_hqx
rlecode_hqx
b2a_hqx
crc_hqx
crc32
b2a_hex
a2b_hex
hexlify
unhexlify
Charcode
binary
base62
basen
bcd
ur
unicode_normalize
qp_encoding
        encode type[2,16,32,64]  str
        
        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))

        elif arg_mensage[0] == "64":
            arg_mensage[1] = arg_mensage[1].encode('ascii')
            base64_bytes = base64.b64encode(arg_mensage[1])
            by_to_st(base64_bytes)
        elif arg_mensage[0] == "32":
            arg_mensage[1] = arg_mensage[1].encode('ascii')
            b32encode_bytes = base64.b32encode(arg_mensage[1])
            by_to_st(b32encode_bytes)
        elif arg_mensage[0] == "16":
            arg_mensage[1] = arg_mensage[1].encode('ascii')
            b16encode_bytes = base64.b16encode(arg_mensage[1])
            by_to_st(b16encode_bytes)
        elif arg_mensage[0] == "a85encode":
            arg_mensage[1] = arg_mensage[1].encode('ascii')
            a85encode_bytes = base64.a85encode(arg_mensage[1])
            by_to_st(a85encode_bytes)
        elif arg_mensage[0] == "b85encode":
            arg_mensage[1] = arg_mensage[1].encode('ascii')
            b85encode_bytes = base64.b85encode(arg_mensage[1])
            by_to_st(b85encode_bytes)
        elif arg_mensage[0] == "a2b_uu":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Converta uma única linha de dados uuencodificados de volta em binários e retorne os dados binários. As linhas normalmente contêm 45 bytes (binários), exceto a última linha. Os dados da linha podem ser seguidos de espaços em branco."""
                    .format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.a2b_uu(arg_mensage[1])))
        elif arg_mensage[0] == "a2b_base64":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED}Converta dados binários em uma linha de caracteres ASCII na codificação base64. O valor de retorno é a linha convertida, incluindo um caractere de nova linha. O comprimento dos dados deve ser de no máximo 57 para aderir ao padrão base64."""
                    .format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st(binascii.a2b_base64(arg_mensage[1]))
        elif arg_mensage[0] == "b2a_base64":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Converta dados binários em uma linha de caracteres ASCII na codificação base64. O valor de retorno é a linha convertida, incluindo um caractere de nova linha. O comprimento dos dados deve ser de no máximo 57 para aderir ao padrão base64."""
                    .format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st(binascii.b2a_base64(b'arg_mensage[1]'))
        elif arg_mensage[0] == "a2b_qp":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED}Converta um bloco de dados imprimíveis entre aspas de volta em binários e retorne os dados binários. Mais de uma linha pode ser passada por vez. Se o cabeçalho do argumento opcional estiver presente e verdadeiro, os sublinhados serão decodificados como espaços."""
                    .format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st(binascii.a2b_qp(arg_mensage[1]))
        elif arg_mensage[0] == "b2a_qp":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED}Converta dados binários em uma (s) linha (s) de caracteres ASCII em codificação imprimível entre aspas. O valor de retorno é a (s) linha (s) convertida (s). Se o argumento opcional quotetabs estiver presente e verdadeiro, todas as tabulações e espaços serão codificados. Se o argumento opcional istext estiver presente e verdadeiro, as novas linhas não serão codificadas, mas os espaços em branco finais serão codificados. Se o cabeçalho do argumento opcional estiver presente e verdadeiro, os espaços serão codificados como sublinhados de acordo com RFC1522. Se o cabeçalho do argumento opcional estiver presente e for falso, os caracteres de nova linha também serão codificados; caso contrário, a conversão de alimentação de linha pode corromper o fluxo de dados binários."""
                    .format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st(binascii.a2b_qp(arg_mensage[1].encode()))
        elif arg_mensage[0] == "a2b_hqx":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED}Converta dados ASCII formatados de binhex4 em binários, sem fazer a descompressão RLE. A string deve conter um número completo de bytes binários ou (no caso da última parte dos dados binhex4) ter os bits restantes zero.
""".format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st(binascii.a2b_hqx(arg_mensage[1]))
        elif arg_mensage[0] == "rledecode_hqx":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Execute a descompressão RLE nos dados, de acordo com o padrão binhex4. O algoritmo usa 0x90 após um byte como um indicador de repetição, seguido por uma contagem. Uma contagem de 0 especifica um valor de byte de 0x90 . A rotina retorna os dados descompactados, a menos que os dados de entrada de dados terminem em um indicador de repetição órfão, caso em que a exceção Incompleta é levantada."""
                    .format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.rledecode_hqx(arg_mensage[1].encode())))
        elif arg_mensage[0] == "rlecode_hqx":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Execute a compactação RLE no estilo binhex4 nos dados e retorne o resultado."""
                    .format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.rlecode_hqx(arg_mensage[1].encode())))
        elif arg_mensage[0] == "b2a_hqx":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Execute a conversão hexbin4 binário para ASCII e retorne a string resultante. O argumento já deve ser codificado por RLE e ter um comprimento divisível por 3 (exceto possivelmente o último fragmento).
""".format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.b2a_hqx(arg_mensage[1].encode())))
        elif arg_mensage[0] == "crc_hqx":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Calcule o valor binhex4 crc dos dados , começando com um crc inicial e retornando o resultado.
""".format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.crc_hqx(arg_mensage[1].encode(),
                                           int(arg_mensage[2]))))
        elif arg_mensage[0] == "crc32":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Calcule CRC-32, a soma de verificação de dados de 
                32 bits, começando com um crc inicial. Isso é consistente com a soma de verificação do arquivo ZIP. 
                Uma vez que o algoritmo é projetado para uso como um algoritmo de soma de verificação, não é adequado 
                para uso como um algoritmo de hash geral. 

{YELLOW}Nota{YELLOW}{RED} Para gerar o mesmo valor numérico em todas as versões e plataformas Python, {RED}{BLUE}use crc32 (dados) & 0xffffffff{BLUE}{RED}. Se você estiver usando apenas a soma de verificação no formato binário compactado, isso não é necessário, pois o valor de retorno é a representação binária correta de 32 bits, independentemente do sinal.
        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.crc32(arg_mensage[1].encode())))
        elif arg_mensage[0] == "hexlify":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Retorna a representação hexadecimal dos dados 
                binários . Cada byte de dados é convertido na representação hexadecimal de 2 dígitos correspondente. 
                A string resultante é, portanto, o dobro do comprimento dos dados . 

        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.hexlify(arg_mensage[1].encode(),
                                           arg_mensage[2].encode())))
        elif arg_mensage[0] == "b2a_hex":
            if arg_mensage[1] == "help":
                print("""{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} hex
        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.b2a_hex(arg_mensage[1].encode(),
                                           int(arg_mensage[2]))))
        elif arg_mensage[0] == "unhexlify":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Retorna os dados binários representados pela string hexadecimal hexstr . Esta função é o inverso de b2a_hex () . hexstr deve conter um número par de dígitos hexadecimais (que podem ser maiúsculas ou minúsculas), caso contrário, um TypeError é gerado.

        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.unhexlify(arg_mensage[1].encode())))
        elif arg_mensage[0] == "b2a_uu":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}a2b_uu{YELLOW}{BLUE} =>{BLUE}{RED} Converta dados binários em uma linha de caracteres ASCII, o valor de retorno é a linha convertida, incluindo um caractere de nova linha. O comprimento dos dados deve ser de no máximo 45.

        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                by_to_st((binascii.b2a_uu(arg_mensage[1].encode(),
                                          int(arg_mensage[2]))))
        elif arg_mensage[0] == "charcode":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}charcode{YELLOW}{BLUE} =>{BLUE}{RED}converte string em charcode
        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                print(ord(arg_mensage[1].encode()))
        elif arg_mensage[0] == "binary":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}binary{YELLOW}{BLUE} =>{BLUE}{RED}converte string em binary
        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                print(' '.join(format(ord(x), 'b') for x in arg_mensage[1]))
        elif arg_mensage[0] == "base62":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}base62{YELLOW}{BLUE} =>{BLUE}{RED}converte string em base62
        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                print(decode62(arg_mensage[1]))
        elif arg_mensage[0] == "basen":
            if arg_mensage[1] == "help":
                print(
                    """{YELLOW}basen{YELLOW}{BLUE} =>{BLUE}{RED}converte decimal em basen
        """.format(YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
            else:
                print(
                    numpy.base_repr(int(arg_mensage[1]),
                                    base=int(arg_mensage[2])))
        elif arg_mensage[0] == "url":
            try:
                if arg_mensage[1] == "help":
                    print(
                        """{YELLOW}url_encode{YELLOW}{BLUE} =>{BLUE}{RED}encode personalidado para url\nencode url_encode safa[] encoding"""
                        .format(YELLOW=Fore.YELLOW,
                                BLUE=Fore.BLUE,
                                RED=Fore.RED))
                else:
                    print(
                        quote(arg_mensage[1],
                              safe=arg_mensage[2],
                              encoding=arg_mensage[3]))
            except IndexError:
                print(
                    "digite a sintaxe correta\nncode url_encode safa[] encoding\n ou use o comando help"
                )
        elif arg_mensage[0] == "unicode_normalize":
            try:
                if arg_mensage[1] == "help":
                    print(
                        """{YELLOW}unicode_normalize{YELLOW}{BLUE} =>{BLUE}{RED}Transforme caracteres Unicode em uma das formas de normalização['NFC', 'NFKC', 'NFD','NFKD']\n                   
{YELLOW}NFD{YELLOW}{BLUE} =>{BLUE}{RED}Normalisation Form Canonical Decomposition
{YELLOW}NFC{YELLOW}{BLUE} =>{BLUE}{RED}Normalisation Form Canonical Composition
{YELLOW}NFKD{YELLOW}{BLUE} =>{BLUE}{RED}Normalisation Form Compatibility Decomposition
{YELLOW}NFKC{YELLOW}{BLUE} =>{BLUE}{RED}Normalisation Form Compatibility Composition    
encode unicode_normalize str encoding['NFC', 'NFKC', 'NFD','NFKD']\n""".format(
                            YELLOW=Fore.YELLOW, BLUE=Fore.BLUE, RED=Fore.RED))
                else:
                    print(unicodedata.normalize(arg_mensage[1],
                                                arg_mensage[2]))
            except IndexError:
                print(
                    "digite a sintaxe correta\nncode url_encode safa[] encoding\n ou use o comando help"
                )
        elif arg_mensage[0] == "qp_encoding":
            try:
                if arg_mensage[1] == "help":
                    print("""{YELLOW}qp_encoding{YELLOW}{BLUE} =>{BLUE}{RED}
                    Quoted-Printable, ou QP encoding, 
                    é uma codificação que usa caracteres ASCII imprimíveis (alfanuméricos e o sinal de igual '=') 
                    para transmitir dados de 8 bits em um caminho de dados de 7 bits ou, geralmente, em um meio que não é 8- um pouco limpo. 
                    É definido como uma codificação de transferência de conteúdo MIME para uso em e-mail.
                    QP funciona usando o sinal de igual '=' como um caractere de escape. Ele também limita o comprimento da linha a 76, pois alguns softwares têm limites no comprimento da linha\nencode qp_encoding TXT encode"""
                          .format(YELLOW=Fore.YELLOW,
                                  BLUE=Fore.BLUE,
                                  RED=Fore.RED))
                else:
                    encoded = quopri.encodestring(arg_mensage[1].encode(
                        arg_mensage[2]))
                    print(encoded.decode())
            except IndexError:
                print(
                    "digite a sintaxe correta\nencode qp_encoding é utf-16\n ou use o comando help"
                )
        elif arg_mensage[0] == "idna":
            try:
                if arg_mensage[1] == "help":
                    print(
                        """{YELLOW}idna{YELLOW}{BLUE} =>{BLUE}{RED}encode personalidado para url\nencode url_encode safa[] encoding"""
                        .format(YELLOW=Fore.YELLOW,
                                BLUE=Fore.BLUE,
                                RED=Fore.RED))
                else:
                    print(idna.encode(arg_mensage[1]).decode(arg_mensage[2]))
            except IndexError:
                print(
                    "digite a sintaxe correta\nncode idna string encoding\n ou use o comando help"
                )

        else:
            pass
        try:
            pass

        except IndexError:
            print("verificar a saida")
Ejemplo n.º 46
0
b2a = binascii.b2a_qp(str)
print repr(b2a)
a2b = binascii.a2b_qp(b2a)
print repr(a2b)

b2a = binascii.b2a_uu(str)
print repr(b2a)
a2b = binascii.a2b_uu(b2a)
print repr(a2b)

b2a = binascii.b2a_hex(str)
print repr(b2a)
a2b = binascii.a2b_hex(b2a)
print repr(a2b)

b2a = binascii.b2a_hqx(str)
print repr(b2a)
a2b,done = binascii.a2b_hqx(b2a) # returns a string instead of a tuple
print repr(a2b),done

b2a = binascii.b2a_base64(str)
print repr(b2a)
a2b = binascii.a2b_base64(b2a)
print repr(a2b)

b2a = binascii.rlecode_hqx(str)
print repr(b2a)
a2b = binascii.rledecode_hqx(b2a)
print repr(a2b)

b2a = binascii.hexlify(str)
Ejemplo n.º 47
0
import binascii

text = "hello, mrs teal"

data = binascii.b2a_base64(text)
text = binascii.a2b_base64(data)
print text, "<=>", repr(data)

data = binascii.b2a_uu(text)
text = binascii.a2b_uu(data)
print text, "<=>", repr(data)

data = binascii.b2a_hqx(text)
text = binascii.a2b_hqx(data)[0]
print text, "<=>", repr(data)

# 2.0 and newer
data = binascii.b2a_hex(text)
text = binascii.a2b_hex(data)
print text, "<=>", repr(data)

## hello, mrs teal <=> 'aGVsbG8sIG1ycyB0ZWFs\012'
## hello, mrs teal <=> '/:&5L;&\\L(&UR<R!T96%L\012'
## hello, mrs teal <=> 'D\'9XE\'mX)\'ebFb"dC@&X'
## hello, mrs teal <=> '68656c6c6f2c206d7273207465616c'
Ejemplo n.º 48
0
 def encode(self, s):
     return binascii.b2a_hqx(s)
Ejemplo n.º 49
0
    def write(self, data):
		self.data = self.data + data
		while len(self.data) > LINELEN:
		    hqxdata = binascii.b2a_hqx(self.data[:LINELEN])
		    self.ofp.write(hqxdata+'\n')
		    self.data = self.data[LINELEN:]
Ejemplo n.º 50
0
def hexbin4_binary_to_ascii(flag):
    return str(binascii.b2a_hqx(flag.encode()).decode())