Coder Social home page Coder Social logo

pa55-migration's Introduction

CodeQL

Command line migration tool for PA55NYAPS

Summary

This command line migration tool for PA55NYAPS (GitHub) generates the password for each PA55NYAPS password database entry and exports the generated password along with relevant information as JSON or CSV in order to import into any other password manager. When exported as JSON, for PA55NYAPS, the file contains the entire password database including the settings for each password database entry along with the corresponding generated password. If the exported file is CSV, information about character classes are dropped.

How to use

You can build the executable JAR from the source code. Or, you can download the executable JAR from an appropriate release and run the JAR as instructed below.

Build

This project uses Apache Maven. Ensure that your operating environment contains Maven (>=3.9) and Java SDK (e.g., OpenJDK >=19.0.2). In order to compile and package the tool as an executable JAR, execute mvn clean compile assembly:single. The output of the build, if successful, will contain a line akin to [INFO] Building jar: <current-directory>/target/tools-0.0.1-SNAPSHOT-jar-with-dependencies.jar.

Note that the project can also be built using Gradle but it is experimental as of now.

Generate Software Bill of Materials (SBOM)

Software Bill of Materials (SBOM) for the project can be generated in both CycloneDX (GitHub) and SPDX (GitHub) formats by executing mvn cyclonedx:makeAggregateBom and mvn spdx:createSPDX respectively. In case of CycloneDX, the output will be in both JSON and XML formats while it will be only JSON for SPDX. The locations of the SBOM files will be printed during the SBOM generation processes.

Run

The JAR file generated in the build step can be executed, in the same directory as the project, as java -jar target/tools-<version>-jar-with-dependencies.jar -h. (Check the releases or the output of the build to pick an appropriate value for the <version>.) The -h option prints the usage information as follows, which is rather self-explanatory.

usage: tools.migration.PasswordDatabaseExporter [-c] [-g] [-h] -i <input
       file> -o <output file>
 -c,--csv                    Output a CSV line for each database entry
                             instead of JSON.
 -g,--generate               Generate passwords for each database entry.
 -h,--help                   Print this help message.
 -i,--input <input file>     Input PA55 NYAPS encrypted password database
                             file path.
 -o,--output <output file>   Output PA55 NYAPS plaintext password database
                             file path. Output file will contain generated
                             passwords if -g is specified.

Thus, a CSV file may be exported with the generated passwords by executing java -jar target/tools-0.0.1-SNAPSHOT-jar-with-dependencies.jar -cg -i <input-PA55NYAPS-file-path> -o <output-CSV-file-path>. The migration tool will ask the user to type in the file decryption password in order to decrypt the PA55NYAPS password database file. It will also ask for the master secret when the -g option is specified.

WARNING: If the exported file is created using the -g option then the file will contain passwords in plaintext.

pa55-migration's People

Contributors

anirbanbasu avatar dependabot[bot] avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.