2022-12-31 13:49:58 +01:00
|
|
|
opencoin-issuer-cpp - a C++ OpenCoin Issuer REST-API implementation {#mainpage}
|
|
|
|
=============================================================
|
2022-12-04 22:08:42 +01:00
|
|
|
|
2022-12-31 13:49:58 +01:00
|
|
|
![build](https://github.com/OpenCoin/opencoin-issuer-cpp/actions/workflows/cmake.yaml/badge.svg)
|
|
|
|
[![Documentation](https://github.com/OpenCoin/opencoin-issuer-cpp/actions/workflows/doxygen-gh-pages.yml/badge.svg)](https://github.com/OpenCoin/opencoin-issuer-cpp/actions/workflows/doxygen-gh-pages.yml)
|
2022-11-10 01:31:47 +01:00
|
|
|
|
2022-12-31 13:49:58 +01:00
|
|
|
# opencoin issuer
|
2022-11-10 01:31:47 +01:00
|
|
|
|
2022-12-31 13:49:58 +01:00
|
|
|
this is a C++ implementation of the [opencoin protocol](https://opencoin.org/0.4/OpenCoin.html)
|
|
|
|
done as mapping to some kind of REST interface.
|
2022-11-21 23:05:53 +01:00
|
|
|
|
2022-12-31 13:49:58 +01:00
|
|
|
As all issuer related interactions of the protocol follows a request/response mechanism we are able to map all of them to Http-Requests.
|
2022-11-10 01:31:47 +01:00
|
|
|
|
2022-12-31 13:49:58 +01:00
|
|
|
We decided to use POST-Requests in all cases,
|
|
|
|
as the protocol uses JSON-formatted messages for requests.
|
|
|
|
|
|
|
|
The following table gives an overview of the mapping of requests to URLs:
|
|
|
|
|
|
|
|
| Request | URL | Response | C++ Interface Method |
|
|
|
|
|:------------------|:-------------|:------------------------------|:---------------------------------------------------|
|
|
|
|
| RequestCDDCSerial | /cddc/serial | ResponseCDDCSerial | cdd.cdd_serial of Model::getCurrentCDDC() |
|
|
|
|
| RequestCDDC | /cddc | ResponseCDDC | Model::getCurrentCDDC() |
|
|
|
|
| RequestMKCs | /mkcs | ResponseMKCs | Model::getMKCs |
|
|
|
|
| RequestMint | /mint | ResponseMint | Model::mint |
|
|
|
|
| RequestRenew | /renew | ResponseMint or ResponseDelay | ? |
|
|
|
|
| RequestResume | /resume | ResponseMint or ResponseDelay | ? |
|
|
|
|
| RequestRedeem | /redeem | ResponseRedeem | Model::redeem |
|
|
|
|
|
|
|
|
actually the implementation is a work in progress.
|
2022-11-14 16:04:45 +01:00
|
|
|
|
2022-11-21 23:05:53 +01:00
|
|
|
## TODO
|
2022-12-04 22:08:42 +01:00
|
|
|
|
2022-12-31 13:49:58 +01:00
|
|
|
- [ ] select crypto library
|
|
|
|
+ https://en.wikipedia.org/wiki/Comparison_of_cryptography_libraries
|
2022-12-31 13:49:58 +01:00
|
|
|
+ [ ] blinding utilizing crypto++
|
|
|
|
+ [ ] integrate session and login to make transactions account based
|
|
|
|
+ [ ] bookkeeping for accounts
|
|
|
|
|
|
|
|
## Protocol Questions
|
|
|
|
|
|
|
|
+ What is signed as cdd - only the content of the cdd item with curly braces
|
|
|
|
or also the key?
|
|
|
|
+ the weighted URL as array has a different js encoding as other elements
|
|
|
|
+ Clarify PSS usage (see https://crypto.stackexchange.com/questions/12707/usability-of-padding-scheme-in-blinded-rsa-signature)
|
2022-12-15 21:02:12 +01:00
|
|
|
|
|
|
|
### Blinding Notes
|
|
|
|
|
|
|
|
https://stackoverflow.com/questions/47860570/how-to-create-and-verify-blind-rsa-signatures-with-crypto
|
|
|
|
|
|
|
|
https://crypto.stackexchange.com/questions/12707/usability-of-padding-scheme-in-blinded-rsa-signature
|
|
|
|
|
|
|
|
https://crypto.stackexchange.com/questions/54085/is-there-a-standard-padding-format-for-rsa-blind-signatures/60728#60728
|
|
|
|
https://crypto.stackexchange.com/questions/5626/rsa-blind-signatures-in-practice
|