Subversion Repositories pub

Compare Revisions

No changes between revisions

Ignore whitespace Rev 181 → Rev 182

/relevation/ext/cryptopy-1.2.5.orig/crypto/app/__init__.py
0,0 → 1,8
""" crypto.app
 
Sample applications of CryptoPy
 
Copyright © (c) 2002 by Paul A. Lambert
Read LICENSE.txt for license information.
"""
 
/relevation/ext/cryptopy-1.2.5.orig/crypto/app/filecrypt.py
0,0 → 1,87
#!/usr/bin/env python
""" cipher.app.filecrypt
 
File encryption script.
 
Current uses an 'extended' AES algorithm.
 
2002 by Paul A. Lambert
Read LICENSE.txt for license information.
"""
import sys, getpass, getopt, os
from crypto.cipher.trolldoll import Trolldoll
from crypto.errors import DecryptNotBlockAlignedError
from binascii_plus import *
 
 
def main():
""" Main is the command line interface to filecrypt """
path, progName = os.path.split(sys.argv[0])
usage = """Usage: %s [-d | -e][a][?] [-k <passPhrase>] [-i <infile>] [-o <outfile>]\n""" % progName
try:
# use get opt to parse and validate command line
optlist, args = getopt.getopt( sys.argv[1:], 'edk:i:o:' )
except getopt.GetoptError, err :
sys.exit( "Error: %s\n%s" % (err,usage) )
print optlist,'\n------\n',args
# make a dictionary and check for one occurance of each option
optdict = {}
for option in optlist:
if not optdict.has_key(option[0]):
optdict[option[0]] = option[1]
else:
sys.exit( "Error: duplicate option '%s'\n%s" % (option[0],usage) )
 
if optdict.has_key('-e') and optdict.has_key('-d'):
sys.exit( "Error: Can not do both encrypt and decrypt, pick either '-e' or '-d'\n%s" % usage )
if not(optdict.has_key('-e') or optdict.has_key('-d')):
sys.exit( "Error: Must select encrypt or decrypt, pick either '-e' or '-d'\n%s" % usage )
 
# determine the passphrase from the command line or by keyboard input
if optdict.has_key('-k'):
passPhrase = optdict['-k']
else:
passPhrase = getpass.getpass('Key: ')
# should really test for a good passphrase ...................
 
# get input from file or stdin
if optdict.has_key('-i'):
infile = open(optdict['-i'],'rb')
input = infile.read()
else:
input = sys.stdin.read()
 
print "input (%d bytes): %s" % (len(input),b2a_pt(input))
alg=Trolldoll(ivSize=160)
alg.setPassphrase( passPhrase )
 
# Encrypt or decrypt depending on the option selected
if optdict.has_key('-e'):
output = alg.encrypt(input)
elif optdict.has_key('-d'):
try:
output = alg.decrypt(input)
except DecryptNotBlockAlignedError, errMessage :
sys.exit("""Error: %s\n Note this can be caused by inappropriate modification \n of binary files (Win issue with CR/LFs). Try -a mode. """ % errMessage )
# should check for integrity failure
else:
sys.exit( "Error: Must select encrypt or decrypt, pick either '-e' or '-d'\n%s" % usage )
 
print "output (%d bytes): %s" % (len(output),b2a_pt(output))
# put output to file or stdout
if optdict.has_key('-o'):
outfile = open(optdict['-o'],'wb')
outfile.write( output )
else:
sys.stdout.write( output )
 
sys.exit() # normal termination
 
if __name__ == "__main__":
""" Called when run from the command line """
main()
 
 
 
 
 
/relevation/ext/cryptopy-1.2.5.orig/crypto/app/.
Property changes:
Added: bugtraq:number
+true
\ No newline at end of property