Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crypto #5

Merged
merged 2 commits into from
Oct 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions Crypto.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

## Crypto Utility
Specifically shared to assist in Onboarding of Network Participants in ONDC

### Option 1 to use it as docker container
``docker run -p 8000:9001 proteantech/sign-encrypt:v1.0``

### Option 2 to use it as jar
Download [jar](/sign-encrypt/ondc-sign-encrypt.jar) and execute it as ```java -Dserver.port=8000 -jar ondc-sign-encrypt.jar ```

### Use below postman collection to execute the same

[![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/4458383-4e8390fd-1e4a-4f83-83d2-52f7f2264637?action=collection%2Ffork&collection-url=entityId%3D4458383-4e8390fd-1e4a-4f83-83d2-52f7f2264637%26entityType%3Dcollection%26workspaceId%3D7aec3395-f6dd-4231-b557-4406b610a970)

* Generate Signing Keys
* Generate Encryption Keys
* Encrypt Challenge String
* Decrypt Challenge String
* Sign Request ID
* Verfiy Request ID
3,093 changes: 3,093 additions & 0 deletions onboarding.md

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions ondc-crypto-utility-master/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# ondc-crypto-utility
## Introduction
This project has been created with an intension to help and assist ONDC Network Participants to build their own crypto libraries that are required for interaction in ONDC Network
It covers key generation, signing, verification, encryption and decryption.

## CryptoFunctions class
[CryptoFunctions](./src/main/java/ondc/crypto/util/CryptoFunctions.java) has all crypto functions implemented

## Test class
[CryptoTest](./src/test/java/ondc/crypto/util/CryptoTest.java) Class has all test methods that can be referred to get an idea on how to use this library


## Java Doc available at
https://protean-ondc.github.io/ondc-crypto-utility/ondc/crypto/util/package-summary.html
76 changes: 76 additions & 0 deletions ondc-crypto-utility-master/docs/allclasses-index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Tue Oct 18 20:39:56 IST 2022 -->
<title>All Classes and Interfaces</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-10-18">
<meta name="description" content="class index">
<meta name="generator" content="javadoc/AllClassesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="all-classes-index-page">
<script type="text/javascript">var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="ondc/crypto/util/package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li><a href="ondc/crypto/util/package-tree.html">Tree</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html#all-classes">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="All Classes and Interfaces" class="title">All Classes and Interfaces</h1>
</div>
<div id="all-classes-table">
<div class="caption"><span>Classes</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="ondc/crypto/util/CryptoFunctions.html" title="class in ondc.crypto.util">CryptoFunctions</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class CryptoFunctions provides generation of key pairs for signing and encryption along with signing, verification, encryption and decryption.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="ondc/crypto/util/CryptoKeyPair.html" title="class in ondc.crypto.util">CryptoKeyPair</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class CryptoKeyPair is used to store keypair</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="ondc/crypto/util/CryptoTest.html" title="class in ondc.crypto.util">CryptoTest</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">The Class CryptoTest is used to test ondc.crypto.util.CryptoFunctions</div>
</div>
</div>
</div>
</main>
</div>
</div>
</body>
</html>
64 changes: 64 additions & 0 deletions ondc-crypto-utility-master/docs/allpackages-index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Tue Oct 18 20:39:56 IST 2022 -->
<title>All Packages</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-10-18">
<meta name="description" content="package index">
<meta name="generator" content="javadoc/AllPackagesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="all-packages-index-page">
<script type="text/javascript">var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="ondc/crypto/util/package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li><a href="ondc/crypto/util/package-tree.html">Tree</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html#all-packages">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
</div>
<div class="caption"><span>Package Summary</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="ondc/crypto/util/package-summary.html">ondc.crypto.util</a></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</main>
</div>
</div>
</body>
</html>
1 change: 1 addition & 0 deletions ondc-crypto-utility-master/docs/element-list
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ondc.crypto.util
176 changes: 176 additions & 0 deletions ondc-crypto-utility-master/docs/help-doc.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Tue Oct 18 20:39:56 IST 2022 -->
<title>API Help</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-10-18">
<meta name="description" content="help">
<meta name="generator" content="javadoc/HelpWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="help-page">
<script type="text/javascript">var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="ondc/crypto/util/package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li><a href="ondc/crypto/util/package-tree.html">Tree</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li class="nav-bar-cell1-rev">Help</li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Help:&nbsp;</li>
<li><a href="#help-navigation">Navigation</a>&nbsp;|&nbsp;</li>
<li><a href="#help-pages">Pages</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<h1 class="title">JavaDoc Help</h1>
<ul class="help-toc">
<li><a href="#help-navigation">Navigation</a>:
<ul class="help-subtoc">
<li><a href="#help-search">Search</a></li>
</ul>
</li>
<li><a href="#help-pages">Kinds of Pages</a>:
<ul class="help-subtoc">
<li><a href="#package">Package</a></li>
<li><a href="#class">Class or Interface</a></li>
<li><a href="#doc-file">Other Files</a></li>
<li><a href="#use">Use</a></li>
<li><a href="#tree">Tree (Class Hierarchy)</a></li>
<li><a href="#all-packages">All Packages</a></li>
<li><a href="#all-classes">All Classes and Interfaces</a></li>
<li><a href="#index">Index</a></li>
</ul>
</li>
</ul>
<hr>
<div class="sub-title">
<h2 id="help-navigation">Navigation</h2>
Starting from the <a href="index.html">Overview</a> page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The <a href="index-files/index-1.html">Index</a> and Search box allow you to navigate to specific declarations and summary pages, including: <a href="allpackages-index.html">All Packages</a>, <a href="allclasses-index.html">All Classes and Interfaces</a>
<section class="help-section" id="help-search">
<h3>Search</h3>
<p>You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camelCase" abbreviations. For example:</p>
<ul class="help-section-list">
<li><code>j.l.obj</code> will match "java.lang.Object"</li>
<li><code>InpStr</code> will match "java.io.InputStream"</li>
<li><code>HM.cK</code> will match "java.util.HashMap.containsKey(Object)"</li>
</ul>
<p>Refer to the <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/javadoc-search-spec.html">Javadoc Search Specification</a> for a full description of search features.</p>
</section>
</div>
<hr>
<div class="sub-title">
<h2 id="help-pages">Kinds of Pages</h2>
The following sections describe the different kinds of pages in this collection.
<section class="help-section" id="package">
<h3>Package</h3>
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:</p>
<ul class="help-section-list">
<li>Interfaces</li>
<li>Classes</li>
<li>Enums</li>
<li>Exceptions</li>
<li>Errors</li>
<li>Annotation Types</li>
</ul>
</section>
<section class="help-section" id="class">
<h3>Class or Interface</h3>
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.</p>
<ul class="help-section-list">
<li>Class Inheritance Diagram</li>
<li>Direct Subclasses</li>
<li>All Known Subinterfaces</li>
<li>All Known Implementing Classes</li>
<li>Class or Interface Declaration</li>
<li>Class or Interface Description</li>
</ul>
<br>
<ul class="help-section-list">
<li>Nested Class Summary</li>
<li>Enum Constant Summary</li>
<li>Field Summary</li>
<li>Property Summary</li>
<li>Constructor Summary</li>
<li>Method Summary</li>
<li>Required Element Summary</li>
<li>Optional Element Summary</li>
</ul>
<br>
<ul class="help-section-list">
<li>Enum Constant Details</li>
<li>Field Details</li>
<li>Property Details</li>
<li>Constructor Details</li>
<li>Method Details</li>
<li>Element Details</li>
</ul>
<p><span class="help-note">Note:</span> Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.</p>
<p>The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
</section>
<section class="help-section" id="doc-file">
<h3>Other Files</h3>
<p>Packages and modules may contain pages with additional information related to the declarations nearby.</p>
</section>
<section class="help-section" id="use">
<h3>Use</h3>
<p>Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.</p>
</section>
<section class="help-section" id="tree">
<h3>Tree (Class Hierarchy)</h3>
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
<ul class="help-section-list">
<li>When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.</li>
<li>When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.</li>
</ul>
</section>
<section class="help-section" id="all-packages">
<h3>All Packages</h3>
<p>The <a href="allpackages-index.html">All Packages</a> page contains an alphabetic index of all packages contained in the documentation.</p>
</section>
<section class="help-section" id="all-classes">
<h3>All Classes and Interfaces</h3>
<p>The <a href="allclasses-index.html">All Classes and Interfaces</a> page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.</p>
</section>
<section class="help-section" id="index">
<h3>Index</h3>
<p>The <a href="index-files/index-1.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as <a href="allpackages-index.html">All Packages</a>, <a href="allclasses-index.html">All Classes and Interfaces</a>.</p>
</section>
</div>
<hr>
<span class="help-footnote">This help file applies to API documentation generated by the standard doclet.</span></main>
</div>
</div>
</body>
</html>
Loading