Project Description
Crypter is a utility to encode-decode, encrypt-decrypt, or digest any file with 64 bases, 35 ciphers, and 126 digester algorithms respectively.

Crypter accepts any file size. However, Is advisable not use crypter for files of considerable size.

This project has been developed in C Sharp. Console application under .NET Framework 2.0 compatible with MonoDevelop.

 Coders:

- Bn (Base n, Where n must be a number from 2 to 64)

Symmetric Block Ciphers:

- RIJNDAEL
- AES (Advanced Encryption Standard)
- 3DES (Triple Data Encryption Standard)
- DES (Data Encryption Standard)
- RC2 (Rivest Cipher 2)
- RC5 (Rivest Cipher 5)
- RC6 (Rivest Cipher 6)
- MARS
- SERPENT
- TNEPRES
- 2FISH (Twofish)
- 3FISH (Threefish)
- BLOWFISH
- CAST5
- CAST6
- IDEA (International Data Encryption Algorithm)
- GOST (The Government Standard of the USSR 28147)
- NOEKEON
- SEED
- TEA
- XTEA
- SKIPJACK

Symmetric Stream Ciphers:

- RC4 (Rivest Cipher 4)
- ISAAC
- SALSA20
- XSALSA20
- CHACHA
- VMPC (Variably Modified Permutation Composition)
- HC (Hongjun Cipher)

Asymmetric Ciphers:

- RSA (Rivest, Shamir and Adleman)
- PGP (Pretty Good Privacy, Open)
- ELGAMAL
- NACCACHE

Hybrids:

- ECIES (Elliptic Curve Integrated Encryption Scheme)
- DLIES (Discrete Logarithm Integrated Encryption Scheme)

Hashes:

- BLAKE224
- BLAKE256
- BLAKE384
- BLAKE512
- BMW224 (Blue Midnight Wish)
- BMW256 (Blue Midnight Wish)
- BMW384 (Blue Midnight Wish)
- BMW512 (Blue Midnight Wish)
- CUBE224
- CUBE256
- CUBE384
- CUBE512
- ECHO224
- ECHO256
- ECHO384
- ECHO512
- FUGUE224
- FUGUE256
- FUGUE384
- FUGUE512
- GROESTL224
- GROESTL256
- GROESTL384
- GROESTL512
- HAMSI224
- HAMSI256
- HAMSI384
- HAMSI512
- JH224
- JH256
- JH384
- JH512
- KECCAK224
- KECCAK256
- KECCAK384
- KECCAK512
- LUFFA224
- LUFFA256
- LUFFA384
- LUFFA512
- SHABAL224
- SHABAL256
- SHABAL384
- SHABAL512
- SHAVITE224
- SHAVITE256
- SHAVITE384
- SHAVITE512
- SIMD224
- SIMD256
- SIMD384
- SIMD512
- SKEIN224
- SKEIN256
- SKEIN384
- SKEIN512
- SHA224
- SHA256
- SHA384
- SHA512 (By default)
- SHA1
- SHA0
- MD2
- MD4
- MD5
- RIPEMD
- RIPEMD128
- RIPEMD160
- RIPEMD256
- RIPEMD320
- AP
- BERNSTEIN
- BERNSTEIN1
- BKDR
- DEK
- DJB
- DOTNET
- ELF
- FNV
- FNV1A
- JENKINS3
- JS
- MURMUR2
- MURMUR3
- ONEATTIME
- PJW
- ROTATING
- RS
- SDBM
- SNX (Shift And Xor)
- SUPERFAST
- FNV64
- FNV1A64
- MURMUR2-64
- SIPHASH
- MURMUR3-128
- GOST
- GRINDAHL256
- GRINDAHL512
- HAS160
- HAVAL3-128
- HAVAL3-160
- HAVAL3-192
- HAVAL3-224
- HAVAL3-256
- HAVAL4-128
- HAVAL4-160
- HAVAL4-192
- HAVAL4-224
- HAVAL4-256
- HAVAL5-128
- HAVAL5-160
- HAVAL5-192
- HAVAL5-224
- HAVAL5-256
- PANAMA
- RG32 (Radio Gatun)
- RG64 (Radio Gatun)
- SNEFRU4-128
- SNEFRU4-256
- SNEFRU8-128
- SNEFRU8-256
- TIGER2
- TIGER3-192
- TIGER4-192
- WHIRLPOOL
- ADLER32
- CRC32-IEEE
- CRC32-CASTAGNOLI
- CRC32-KOOPMAN
- CRC32-Q
- CRC64-ISO
- CRC64-ECMA

Usage

crypter [options...] input-file-name

Options

-m --mode Algorithm mode. Use the help combined with this modifier to list or for more info.
-e --encrypt-encode Encrypt or encode operation indicator.
-d --decrypt-decode Decrypt or decode operation indicator.
-2 --b32-hex For B32 mode. Uses The extended hex alphabet.
-8 --no-rfc4648 For B32 and B64 modes. Coding without the RFC4648 specification.
-1 --base-code Custom characters to coding in BaseN without the RFC4648 specification. The length must be equal or greater than the specified number of base.
   
-6 --base-line-wrap Number of characters to adjust the lines for BaseN mode. The value should be in increments of 8 characters with B2, 6 characters with B3, 4 characters from B4 to B6 (or B64 with RFC4648), 3 characters from B7 to B15, and 2 characters from B16 to B64 (without RFC4648). The maximum value is 255 from B7 to B15 and 256 for all others.
   
-5 --rounds For RC5, SALSA20, and CHACHA the number of rounds should be a integer value (20 by default).
-4 --rc5-64b For RC5 mode. Uses a 64 bits word.
-3 --vmpc-ksa3 For VMPC mode. Uses the Key Scheduling Algorithm.
-x --max-buffer-size Maximum buffer size in bytes for read and write. Modes: All symmetric ciphers and PGP mode. The default value is 1024.
   
-k --key The key characters should have a length of the key size divided by 8. It must be accompanied by the initial vector in the subject terms for that modifier. This option is prioritized over hash, password, salt, and iterations. Modes: All symmetric ciphers. This modifier supports hexadecimal byte representations by the escape characters \x (two-digit) and \u for Unicode (four-digit).
   
-i --initial-vector Needs to be 16 characters for AES, 3DES, DES, RC2, 3FISH, and MARS. SALSA20 requires exactly 8 characters. The RIJNDAEL long must be equal to the block size divided by 8. With VMPC the value should be between 1 and 768 depending on the block size. This modifier supports hexadecimal byte representations by the escape characters \x (two-digit) and \u for Unicode (four-digit).
   
-p --password Word, phrase or file. Modes: All symmetric ciphers and PGP private key or x509 certificates for RSA or PGP with encrypted private key (*.pfx or *.pem). This modifier supports hexadecimal byte representations by the escape characters \x (two-digit) and \u for Unicode (four-digit) with symmetric ciphers.
   
-s --salt At least 8 characters. Modes: All symmetric ciphers.
-h --hash Hash algorithm. Modes: DIGEST, CHECKSUM, all symmetric ciphers, ECIES, DLIES, and ELGAMAL with OAEP (ELGAMAL only support MD5 and SHA-2 hashes). Use the help combined with this modifier to list or for more info.
   
-t --iterations Number of iterations to do. Range from 1 to 2,147,483,647 (1000 by default). Bear in mind that a greater number of iterations implies a slower process. Modes: All symmetric ciphers.
   
-c  --cipher-mode CBC (Cipher Block Chianing) by default for all symmetric block ciphers. The cipher modes CFB (Cipher feedback), or OFB (Output feedback) are valid for all block ciphers except AES. Other cipher modes like ECB (Electronic Code Book), or CTS (Cipher Text Stealing) are only valid for RC2, 3DES, DES, MARS, AES, and RIJNDAEL with iv.
   
-n --padding ANSIX923, ZEROS, ISO10126, or PKCS7 (by default). Modes: 3FISH, AES, 3DES, DES, RC2, and RIJNDAEL. MARS only support PKCS7, and the others block ciphers also support ISO7816 or TBC but no ZEROS padding mode. RSA and ELGAMAL support PKCS1 (by default) and ISO9796D1 for RSA with Bouncy
Castle.
   
-r --random-gen Random password, salt, and initial vector generator. Modes: All symmetric ciphers.
   
-l --block-size The RIJNDAEL legal values: 128, 160, 192, 224, and 256 (by default). For VMPC the value must be between 8 and 6144 bits in increments of 8 bits (256 by default).
   
-z --feedback-size For RIJNDAEL only. The feedback size determines the amount of data that is fed back to successive encryption or decryption operations. The feedback size cannot be greater than the block size.
   
-y --key-size Key size in bits. Use the help combined with this modifier to list or for more info.
   
-g --key-pair-gen Key pair generator. Modes: ECIES, DLIES, ELGAMAL, NACCACHE, RSA, and PGP.
-b --public-key Public key file name. Modes: ECIES, DLIES, RSA, PGP, NACCACHE, and ELGAMAL.
-v --private-key Private key file name. Modes: ECIES, DLIES, RSA, PGP, NACCACHE, and ELGAMAL.
-9 --x509-file X509 certificate file name. Modes: RSA and PGP.
-0 --x509-name X509 common name in the certificate store, Modes: RSA and PGP.
-f --format For RSA and PGP. XML or BLOB (by default for RSA) and ARMORED for PGP.
-a --oaep For ELGAMAL and RSA. Microsoft CryptoAPI only supports OAEP since Windows XP for RSA.
   
-q --pgp-cipher Symmetric cipher for PGP encryption: AES128, AES192, AES256 (by default), BLOWFISH, 2FISH, CAST5, DES, 3DES, IDEA, CAMELLIA128, CAMELLIA192, CAMELLIA256, and SAFER.
   
-u --crossbreeding For RSA, ELGAMAL, and PGP. It allows use either keys from RSA to PGP and PGP to RSA or ELGAMAL to PGP and PGP to ELGAMAL.
   
-j --tell-apart Sets customized password and salt for each file in batch process with symmetric ciphers.
   
-o --output-file Output file name.
-w --overwrite Overwrites the existing output file without asking.
-7 --io-options  Input and output options. Use the help combined with this modifier to list or for more info.
   
--export For RSA, PGP, and ELGAMAL. Exports certificates and keys. Use the help combined with this modifier to list or for more info.
   
--encoding Character encoding for password, key and initial vector with symmetric ciphers. The available encodings are: ASCII (by default), UNICODE-LE, UNICODE-BE, UTF-7, UTF-8, and UTF-32.
   
--rsa-bouncy-castle Uses the Bouncy Castle for RSA mode (Key pair generation, encription, and decryption).
--without-iv-tweak Without tweak or initial vector if possible for symmetric block ciphers.
--gost-box Specifies s-box for GOST mode. The available s-boxes are: DEFAULT, E-TEST, E-A, E-B, E-C, E-D, D-TEST, D-A, IV, or empty string for nothing at all.
   
--pgp-id Identity for PGP key pair.
--pgp-sha1 Uses SHA1 with PGP key pair for checksum.
--pgp-algorithm Public and private keys algorithm for PGP mode. The available algorithms are: RSA (by default), and ELGAMAL.
   
--pgp-master Master key pair type for PGP. The available masters are: DSA (By default for ELGAMAL), ECDSA, and ECDH.
   
--pgp-sign Signature for PGP encryption. The private key or certificate will be required.
--ies-cipher Symmetric cipher for ECIES and DLIES modes: AES (by default), RIJNDAEL, SERPENT, TNEPRES, CAMELLIA, GOST, 2FISH, 3FISH, DES, 3DES, RC2,
RC5, RC6, SKIPJACK, BLOWFISH, CAST5, CAST6, TEA, XTEA, SEED, IDEA, NOEKEON, or nothing at all.
   
--curve Specifies a curve name for ECIES mode and PGP with ECDSA or ECDH master keys.
   
--curve-store Specifies a store of curves for ECIES mode and PGP with ECDSA or ECDH master keys. The stores curve are: CUSTOM, TELETRUST, NIST, ANSSI, X962, GOST, and SEC (by default).
   
--show-store-curves Shows the available curves in the specified store.
--raise-pwd-exception Raises exception for incorrect password or salt.
--inhibit-errors Continue even with errors if possible in batch process.
--inhibit-esc-chars Does not process hexadecimal byte representations by the escape characters \x or \u for Unicode.
   
--inhibit-delimiter Does not process semicolon as a path delimiter.
--input-notes  Shows informative notes of input data.
--examples Show command line examples for specified mode.
--help Show usage info. This modifier can be combined with others from behind or ahead for more info.

Some examples of use

crypter -m --help
crypter -h --help
crypter -y --help

crypter --examples aes

crypter -o file.b64 -m b64 -e file.txt
crypter -o file.txt -m b64 -d file.b64

crypter -o file.aes -m aes -p "my password" -e file.bin
crypter -o file.aes -m aes -p file:"my password file.txt" -e file.bin
crypter -o file.bin -m aes -p "my password" -d file.aes
crypter -o file.bin -m aes -p file:"my password file.txt" -d file.aes
crypter -o file.aes -m aes -e file.bin
crypter -o file.bin -m aes -d file.aes
crypter -o file.aes -m aes -r -e file.bin

crypter -m rsa -g -b public.key -v private.key
crypter -m rsa -g -f xml -b public-key.xml -v private-key.xml
crypter -o file.rsa -m rsa -g -b public.key -v private.key -e file.bin
crypter -o file.bin -m rsa -v private.key -d file.rsa
crypter -o file.rsa -m rsa -b public.key -a -e file.bin
crypter -o file.bin -m rsa -v private.key -a -d file.rsa
crypter -o file.rsa -m rsa -b public-key.xml -e file.bin
crypter -o file.bin -m rsa -v private-key.xml -d file.rsa

crypter -o file.rsa -m rsa -9 file.pem -e file.bin
crypter -o file.rsa -m rsa -9 file.cer -e file.bin
crypter -o file.rsa -m rsa -0 "my certificate common-name" -e file.bin
crypter -o file.bin -m rsa -9 file.pfx -d file.rsa
crypter -o file.bin -m rsa -9 file.pem -p "my password" -d file.rsa

crypter -m pgp -g -b public.key -v private.key -y 2048
crypter -m pgp -g -f armored -b public.asc -v private.asc -q twofish

crypter -o file.pgp -m pgp -b public.key -q safer -e file.bin
crypter -o file.pgp -m pgp -f armored -b public.asc -e file.bin
crypter -o file.pgp -m pgp -u -b rsa-public.key -e file.bin
crypter -o file.pgp -m pgp -9 file.pem -e file.bin
crypter -o file.pgp -m pgp -9 file.cer -e file.bin
crypter -o file.pgp -m pgp -0 "my certificate common-name" -e file.bin

crypter -o file.bin -m pgp -v private.key -d file.pgp
crypter -o file.bin -m pgp -v private.asc -d file.pgp
crypter -o file.bin -m pgp -u -v rsa-private.key -d file.pgp
crypter -o file.bin -m pgp -9 file.pem -d file.pgp
crypter -o file.bin -m pgp -9 file.pfx -p "my password" -d file.pgp

 

Last edited Mar 15, 2016 at 11:53 AM by Jarol, version 42