コード例 #1
0
ファイル: decrypt.py プロジェクト: radhomero/redes2trab2
if not (args.d < args.n):
    print('Erro: `d` precisa ser menor que `n`')
    exit(1)

with open(args.input, 'rb') as arq_origem:
    with open(args.output, 'wb') as arq_dest:
        error = False
        while True:
            buff = arq_origem.read(BLOCK_SIZE)
            if not buff:
                break  # eof

            if len(buff) < 2:
                print('Erro: número impar de bytes no arquivo_cifrado')
                error = True
                break

            m = int.from_bytes(buff, sys.byteorder)
            e = rsa.binExponentiate(m, args.d, args.n)

            if (e > 255):
                print('Erro: um bloco decifrado não é representável (> 255)')
                error = True
                break

            arq_dest.write(e.to_bytes(1, sys.byteorder))

    if (error):
        os.remove(args.output)
コード例 #2
0
parser.add_argument('n', type=int, help='número inteiro n | 255 < n < 65536')
parser.add_argument('e',
                    metavar='chave_publica',
                    type=int,
                    help='número primo e (chave pública)')
args = parser.parse_args()

if not os.path.exists(args.input):
    print('Arquivo não encontrado')
    exit(1)

if not (255 < args.n < 65536):
    print('Erro: `n` precisa estar entre 255 e 65536')
    exit(1)

if not (args.e < args.n):
    print('Erro: `e` precisa ser menor que `n`')
    exit(1)

with open(args.input, 'rb') as arq_origem:
    with open(args.output, 'wb') as arq_dest:
        while True:
            buff = arq_origem.read(BLOCK_SIZE)
            if not buff:
                break  # eof

            m = int.from_bytes(buff, sys.byteorder)
            d = rsa.binExponentiate(m, args.e, args.n)

            arq_dest.write(d.to_bytes(2, sys.byteorder))
コード例 #3
0
ファイル: decrypt.py プロジェクト: radAragon/redes2trab2
if not (args.d < args.n):
    print('Erro: `d` precisa ser menor que `n`')
    exit(1)

with open(args.input, 'rb') as arq_origem:
    with open(args.output, 'wb') as arq_dest:
        error = False
        while True:
            buff = arq_origem.read(BLOCK_SIZE)
            if not buff:
                break  # eof

            if len(buff) < 2:
                print('Erro: número impar de bytes no arquivo_cifrado')
                error = True
                break

            m = int.from_bytes(buff, sys.byteorder)
            e = rsa.binExponentiate(m, args.d, args.n)

            if (e > 255):
                print('Erro: um bloco decifrado não é representável (> 255)')
                error = True
                break

            arq_dest.write(e.to_bytes(1, sys.byteorder))

    if (error):
        os.remove(args.output)
コード例 #4
0
ファイル: encrypt.py プロジェクト: radhomero/redes2trab2
                    help='nome para o arquivo cifrado')
parser.add_argument('n', type=int, help='número inteiro n | 255 < n < 65536')
parser.add_argument('e', metavar='chave_publica', type=int,
                    help='número primo e (chave pública)')
args = parser.parse_args()


if not os.path.exists(args.input):
    print('Arquivo não encontrado')
    exit(1)

if not (255 < args.n < 65536):
    print('Erro: `n` precisa estar entre 255 e 65536')
    exit(1)

if not (args.e < args.n):
    print('Erro: `e` precisa ser menor que `n`')
    exit(1)

with open(args.input, 'rb') as arq_origem:
    with open(args.output, 'wb') as arq_dest:
        while True:
            buff = arq_origem.read(BLOCK_SIZE)
            if not buff:
                break  # eof

            m = int.from_bytes(buff, sys.byteorder)
            d = rsa.binExponentiate(m, args.e, args.n)

            arq_dest.write(d.to_bytes(2, sys.byteorder))