You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-3Lines changed: 13 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,11 @@ __!Security Advisory!__ Note that due to its focus on simplicity `CompactCryptoG
19
19
- Elliptic curves in Montgomery form, specifically Curve25519
20
20
- The x-coordinate-only variant of Montgomery curves
21
21
22
+
## Installing
23
+
24
+
`CompactCryptoGroupAlgebra` can be installed from [nuget](https://www.nuget.org/packages/CompactCryptoGroupAlgebra/1.0.0).
25
+
Follow the link for instructions on how to install using your preferred method (package manager, .net cli, etc).
26
+
22
27
## Usage
23
28
24
29
The public API presents the two generic base classes `CryptoGroup` and `CryptoGroupElement` which are agnostic of the underlying instantiation and implementation of the group.
@@ -92,8 +97,9 @@ of the multiplicative prime field group.
92
97
Functionality of `CompactCryptoGroupAlgebra` is split over a range of classes, each with a single specific purpose, the most important of which are highlighted below.
93
98
94
99
-`CryptoGroupElement<T>` represents an element of a cryptographic group and implements operators for ease of use, abstracting from a specific underlying implementation type via its template type argument.
95
-
-`CryptoGroup<T>` is a wrapper around `CryptoGroupAlgebra<T>` that ensures that all returned values are returned as `CryptoGroupElement<T>` instances.
96
-
-`CryptoGroupAlgebra<T>` is an abstract base class for implementations of a specific mathematical group structure, providing common implementations derived from fundamental group operations (such as generating and inverting group elements).
100
+
-`CryptoGroup<T>` is a wrapper around `ICryptoGroupAlgebra<T>` that ensures that all returned values are returned as `CryptoGroupElement<T>` instances.
101
+
-`ICryptoGroupAlgebra<T>` is the common interface for implementations of a specific mathematical group structure using the underlying type `T`
102
+
-`CryptoGroupAlgebra<T>` is an abstract base class for implementations of `ICryptoGroupAlgebra<T>`, providing common implementations derived from fundamental group operations (such as generating and inverting group elements).
97
103
-`Multiplicative.MultiplicativeGroupAlgebra` is an implementation of `CryptoGroupAlgebra` for multiplicative groups in fields of prime characteristic.
98
104
-`EllipticCurves.CurveGroupAlgebra` is an implementation of `CryptoGroupAlgebra` for elliptic curves that in turn relies on a specific `CurveEquation` instance for fundamental operations.
99
105
- Subclasses of `EllipticCurves.CurveEquation` provide the implementations of specific forms of elliptic curves (currently, `EllipticCurves.WeierstrassCurveEquation` and `EllipticCurves.MontgomeryCurveEquation` are provided).
@@ -127,4 +133,8 @@ but you also have the option of instantiating an instance for your own curve.
127
133
128
134
## License
129
135
130
-
`CompactCryptoCurveAlgebra` is licensed under the [GPLv3 license](/LICENSE.txt) for general use.
136
+
`CompactCryptoGroupAlgebra` is licensed under the [GPLv3 license](/LICENSE.txt) for general use.
137
+
138
+
## Versioning
139
+
140
+
`CompactCryptoGroupAlgebra` version numbers adhere to [Semantic Versioning](https://semver.org).
0 commit comments