source: trunk/bin/bletchley-decode @ 28

Last change on this file since 28 was 28, checked in by tmorgan, 12 years ago

more documentation
added supported encodings listing

  • Property svn:executable set to *
File size: 1.8 KB
Line 
1#!/usr/bin/env python
2
3# Requires Python 2.7+
4
5'''
6Simple decoder script; useful in shell scripts
7
8Copyright (C) 2011-2012 Virtual Security Research, LLC
9Author: Timothy D. Morgan
10
11 This program is free software: you can redistribute it and/or modify
12 it under the terms of the GNU Lesser General Public License, version 3,
13 as published by the Free Software Foundation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program.  If not, see <http://www.gnu.org/licenses/>.
22'''
23
24
25import sys
26import argparse
27from bletchley import blobtools
28
29
30parser = argparse.ArgumentParser(
31    description='A simple decoder script that is useful in shell scripts.'
32    ' For more information, see:  http://code.google.com/p/bletchley/wiki/Overview')
33parser.add_argument(
34    'input_file', nargs='?', default=None,
35    help='File containing encrypted blobs to analyze, one per line.'
36    ' Omit to read from stdin.')
37parser.add_argument(
38    '-e', dest='encoding_chain', type=str, required=True,
39    help='Comma-separated sequence of encoding formats used to encode the token.'
40    ' (Use "?" for a listing of supported encodings.)')
41options = parser.parse_args()
42
43if options.encoding_chain == '?':
44    print('\n\t'.join(['Supported encodings:']+blobtools.supportedEncodings()))
45    sys.exit(0)
46
47input_file = sys.stdin
48if options.input_file is not None:
49    input_file = file(options.input_file, 'rb')
50
51blob = input_file.read()
52
53specified_encodings = options.encoding_chain.split(',')
54sys.stdout.write(blobtools.decodeChain(specified_encodings, blob))
Note: See TracBrowser for help on using the repository browser.