Comments (3)
On the other hand, the I cannot locate the implementation of the function, as this has been imported from WASM, and I cannot review what it actually does. I cannot find a function with that name neither in Substrate or Polkadot repositories.
Anybody knows where is encodePkcs8
implemented?
from common.
It is not a Polkadot/Substrate standard. It is purely a Polkadot Js function used to encode the keyring for internal usage and storage. It is always assumed that anything encoded with this will be decoded with the same (reverse) function.
As such there is no appetite to change it since -
- This would require a Polkadot JS ecosystem-wide upgrade to ensure that keypairs can be shared (an upgrade is planned for version 3 -> 4, but it will drop the current encoding format completely - obviously catering for old decoding as well, just new default encoding would be 4, not pkcs8-like, but rather different)
- It is an internal keyring function (obviously some people may have use for it elsewhere, in that case the limitiations needs to be kept in mind)
The Polkadot JS-specific encoding is handled here - https://github.com/polkadot-js/common/tree/master/packages/util-crypto/src/json
from common.
@jacogr Thanks, I can see where the issue may be coming from. It could be that the header used is actually for an RSA key, I will dig deeper.
As such there is no appetite to change it since ...
Well, at least we should add documentation if it turns out that PKCS8 is actually not PKCS8. Also I believe that adding an `encodeStandardPkcs8' would definitely not hurt. Even better and less confusing would be to add encodePEM() as implemented as Standard PKCS8 in PEM format, and ensuring interoperability at least with NodeJS crypto packages and OpenSSL.
ensure that keypairs can be shared (an upgrade is planned for version 3 -> 4
We are specifically looking into key interoperability as part of DINFRA project, which is in the Web3 Grants program. We are going to be attempting key interoperability with a number of other opensource projects, so we are happy contribute to this.
We are happy to participate in selecting which format/s would be nice to have for best interoperability.
from common.
Related Issues (20)
- Use webcrypto from node:crypto HOT 1
- Replace tweetnacl usage HOT 2
- What's the difference between `injector?.signer?.signRaw` in browser and `KeyringPair.sign` in node.js? HOT 3
- Re-enable encrypt/decrypt on keypair HOT 2
- Add support for bip39 with other wordlists HOT 1
- Bug: the function 'deriveAddress' from a public key with ecdsa HOT 6
- Verify a signed transaction payload offline for ecdsa HOT 7
- Attempted import error: 'TextDecoder' is not exported from '@polkadot/x-textdecoder'
- Keypair functions taking too much time HOT 2
- `base58Validate` returns true for invalid base58 string HOT 1
- Ledger Identity Verification ("raw") signing HOT 10
- Hash of https://esm.sh/@noble/[email protected]/ed25519.js often change HOT 6
- Question for how to get publickey and privatekey & how to verify those key?
- Expose `Keypair` from util-crypto/src/types.ts in util-crypto/bundle.ts HOT 3
- Change RISC-V magic HOT 1
- Signing and verifying a message using ECDSA sometimes fails
- Can the seed be recovered from the secret key? HOT 3
- keyring->pair->vrfVerify: possibly the wrong public key is used if the pair type is sr25519 HOT 1
- Please provide documentation for the pkcs8 related constants in keyring HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from common.