Skip to content

AbduAlmenan/cryptography

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cryptography Image 1

Cryptography

This repository will slowly get more and more cryptography code samples written in Java. Methods are related to Cryptography android application cipher method collection. Point of this repository is that users can find everything in one place, modify code, play with these methods in any way they want and this way learn how ciphers worked in the past and how they work these days. In short words this repository is meant to be educational.

This repository is part of this Android application: Google Play - Cryptography

Table of contents


Ciphers

Hashes

Encoding


Installation

  1. Download and install eclipse: https://www.eclipse.org/downloads/
  2. Download project source code by either cloning it with Git or by Clone or download menu Download ZIP option.
  3. Open project in Eclipse File - Open projects from File System...
  4. Navigate to /src - cryptography - Ciphers.java and start play with it. Rest of the folder structure has method specific code and tests files for running automated tests.

I warmly recommend watching basic Eclipse tutorials if you are new to the topic.

Running tests

Jenkins
  1. Make new branch.
  2. Push changes.
  3. Open pull request.
  4. Later tests are run by Jenkins automation.
Manually
  1. Right click on TestRunner.java
  2. Click Coverage As
  3. Select 1 Java Application
  4. If everything is fine result is Tests success: true

External libraries

commons-codec-1.10.jar

Included for Base32 and Base64 encoding methods.

jacksum-1.7.0 (jacksum.jar)

Included for many hashing algorithms. You can find all source code and details here: https://jacksum.loefflmann.net/en/download.html

core-1.58.0.0.jar | prov-1.58.0.0.jar | bcpg-jdk15on-1.58.0.0.jar | bcpkix-jdk15on-1.58.0.0.jar (Spongy Castle)

Providing tons of newer strong Cryptographic methods. See https://rtyley.github.io/spongycastle/ and http://www.bouncycastle.org/java.html

bcprov-jdk15on-166

BouncyCastle signed cryptography provider

org.junit_4.13.0.v20200204-1500.jar | core-1.3.0.jar

JUnit 4 jar and hamcrest core for Jenkins test runs.

Adding external library

Everytime new external jar library is added, it must be also added to build_jenkins.xml in a block seen below as example

<path id="Cryptography.classpath">
    <pathelement location="bin"/>
    <path refid="JUnit 4.libraryclasspath"/>
    <pathelement location="jar/commons-codec-1.10.jar"/>
    <pathelement location="jar/jacksum.jar"/>
    <pathelement location="jar/core-1.58.0.0.jar"/>
    <pathelement location="jar/prov-1.58.0.0.jar"/>
    <pathelement location="jar/bcpkix-jdk15on-1.58.0.0.jar"/>
    <pathelement location="jar/bcpg-jdk15on-1.58.0.0.jar"/>
    <pathelement location="jar/org.junit_4.13.0.v20200204-1500.jar"/>
    <pathelement location="jar/core-1.3.0.jar"/>
    <pathelement location="jar/bcprov-jdk15on-166"/>
</path>

Notes

Some ciphers or parts of ciphers originate from web sites, tutorials, repositories or other sources. There's unfortunately no links to original references.

Contributions

Rules?

Please, write tests if you make something new.

Found problem?

Open issue or make new branch and create pull request when problem is fixed.

Want to optimize code?

You are free to optimize code, make new branch and create pull request when ready.

Authors

Contributors

  • Saurav Kumar - Added Morse, Huffman - SKR301

License

See repo license section or license file.

About

Cryptography Android application code samples / cipher collection for app users

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%