{"bugs":{"url":"https://github.com/EternalDeiwos/keyto/issues"},"dist":{"shasum":"b097679bc8fc60ad3e73e982e27654d8c4c6ddf2","tarball":"https://registry.npmjs.org/@trust/keyto/-/keyto-2.0.0-alpha1.tgz","fileCount":37,"integrity":"sha512-VmlOa+nOaDzhEUfprnVp7RxFQyuEwA4fJ5+smnsud5WM01gU16yQnO/ejZnDVMGXuq/sUwTa5pCej4JhkKA5Sg==","signatures":[{"sig":"MEYCIQC4wi1aEoLfBstEVBOaFWKgckueEmGVac42WKLY5C3IwwIhAJBm0qIsCBK6v6RM3wP6Px1DJnMpCza7qjviWbCbEMBF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102422,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYUJRCRA9TVsSAnZWagAAPucQAJFwszplfsAvdu7GoqJJ\n5HnM33QElA7shC3XpfEFiA7v+szQwsaDQPPQiKg9YF7OkmpUr8JhqQhgTU3W\nW7iF25dDqm+T01B366a/3+ooK4IMnmrrpaUlwTpyAjQpy9TXv5vGJO7pyrJq\nkMTgf7DzJZMLy/edMgxZ7i/jpeBb6O5hxXJzY44EMbzA9ygYEuW6Qp7PmGle\nKH7OU9HA0InOPsYMCQj97IMSlRVo6ibdYvaj5MorZxH4hPVGkfxfV7rkieXC\nQCJ8PhfeXTRvBVDQaaP7RjwZh87jWXwvzXebG4AaQ/kroh9wlMtvSSsMqI2g\nAvsZfUWSFp0Vc8i7yp4/dknNRyLUKiyY8xXgnkZ7XFX57jF6bVQzDpE+jRaI\nF3kuL4OyLmbT8d6ZSvVPmGgYM+6vSIA3tiAbPkLpT/hLbIboK70Kc8xG9a6+\nEYLOPdb6+ef6qqaRbG4CXCIcxPgIM7RBrozfxTPr2Wm+ejcGx4bkKflVcwn1\nLnj+6pWCR2SyfpKmSW+QkGSx1TNSejSVwFj48WbpTHHQEIdrLW8UdIbHdEIg\n3wyqJIHPsZJoNu5e94Ek9XcGO0S4itCEfifoN18qoXdWdvLxn/78MKzYIZub\nFBDSVS/aZPuQKvTcQ6g4ApFQoUVTmmuu3d7zf37S+9xm+ODYLKIyn/xLVaIe\n/YtU\r\n=CN9M\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","name":"@trust/keyto","readme":"# Keyto _(@trust/keyto)_\n\n[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)\n[![Build Status](https://travis-ci.org/EternalDeiwos/keyto.svg?branch=master)](https://travis-ci.org/EternalDeiwos/keyto)\n[![codecov](https://codecov.io/gh/EternalDeiwos/keyto/branch/master/graph/badge.svg)](https://codecov.io/gh/EternalDeiwos/keyto)\n\n> A utility for translating cryptographic keys between representations.\n\nKeyto is pronounced 'key-to'.\n\nFull project documentation is available [here](https://eternaldeiwos.github.io/keyto).\n\n## Table of Contents\n\n- [Status](#status)\n- [Install](#install)\n- [Usage](#usage)\n- [API](#api)\n- [Maintainers](#maintainers)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Status\n\n### RSA\n\n- [x] PKCS1\n- [x] PKCS8\n- [x] JWK\n\n### ECDSA - secp256k1 (Blockchain Curve)\n\n- [x] PKCS1 (Private Only)\n- [x] PKCS8\n- [x] JWK\n- [x] BLK (Private Key Hex String)\n\n### ECDSA - secp256r1 (P-256)\n\n- [x] PKCS1 (Private Only)\n- [x] PKCS8\n- [x] JWK\n\n### ECDSA - secp384r1 (P-384)\n\n- [x] PKCS1 (Private Only)\n- [x] PKCS8\n- [x] JWK\n\n### ECDSA - secp521r1 (P-521)\n\n- [x] PKCS1 (Private Only)\n- [x] PKCS8\n- [x] JWK\n\n### EDDSA - ed25519\n\n- [x] PKCS8\n- [x] JWK\n\n### EDDSA - ed448\n\n- [ ] PKCS8\n- [ ] JWK\n\n## Install\n\n```bash\n$ npm install @trust/keyto --save\n```\n\n## Usage\n\nTranslate Private PEM to Public JWK:\n\n```js\nconst keyto = require('@trust/keyto')\n\nlet pemPrivate = getPrivatePemStringSomehow()\nlet jwk = getPublicJwkSomehow()\n\n// String data can either be passed in directly:\nlet key = keyto.from(pemPrivate, 'pem').toJwk('public')\n\n// Or can be passed in as an object instead:\nlet key = keyto.from({ key: pemPrivate }, 'pem').toJwk('public')\nassertEqual(jwk, key)\n```\n\nTranslate Private Hex (Blockchain) Key to PKCS8 Public PEM:\n\n```js\nconst keyto = require('@trust/keyto')\n\nlet blk = getPrivateBlockchainHexStringSomehow()\nlet pemPublic = getPublicPemSomehow()\n\nlet key = keyto.from(blk, 'blk').toString('pem', 'public_pkcs8')\nassertEqual(pemPublic, key)\n```\n\n## API\n\n### keyto.from(key, format) -> {Key}\n\n**args**:\n\n* key := (String|JWK)\n* format := String\n\n**format**:\n\nFormat can be any of these: 'pem', 'jwk' or 'blk'.\n\n* format = pem: will parse a PEM encoded string (as per OpenSSL output).\n* format = jwk: will parse a JWK object or JSON String\n* format = blk: will parse a hex encoded key string as used on various blockchains (limited to secp256k1 keys).\n\n### {Key}.toJwk(selector = 'public') -> {JWK}\n\n**args**:\n\n* selector := String\n\n**selector**:\n\nSelector can be any of these: 'public', 'private'.\n\n* selector := public: will produce a public JWK.\n* selector := private: will produce a private JWK.\n\n### {Key}.toString(format = 'pem', selector = 'public') -> {String}\n\n**args**:\n\n* format := String\n* selector := String\n\n**format**:\n\nFormat can be any of these: 'pem', 'jwk' or 'blk'.\n\n* format = pem: will produce a PEM encoded string (as per OpenSSL output).\n* format = jwk: will produce a stringified JWK.\n* format = blk: will produce a hex encoded key string as used on various blockchains (limited to secp256k1 keys).\n\n**selector**:\n\nSelector can be any of these: 'public', 'private', 'public_pkcs1', 'public_pkcs8', 'private_pkcs1' or 'private_pkcs8'.\n\n* selector = public: will produce a public key.\n* selector = private: will produce a private key.\n* selector = public_pkcs1: will produce a public key according to the PKCS1 ASN Schema. Only relevant to DER related encodings.\n* selector = public_pkcs8: will produce a public key according to the PKCS8 ASN Schema. Only relevant to DER related encodings.\n* selector = private_pkcs1: will produce a private key according to the PKCS1 ASN Schema. Only relevant to DER related encodings.\n* selector = private_pkcs8: will produce a private key according to the PKCS8 ASN Schema. Only relevant to DER related encodings.\n\n\n## Maintainers\n\n[@EternalDeiwos](https://github.com/EternalDeiwos)\n[@thelunararmy](https://github.com/thelunararmy)\n\n## Contribute\n\nPRs accepted.\n\nSmall note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## License\n\nMIT © 2017-2020 Greg Linklater\n","gitHead":"157c4856e741a3b4fefc4f5f27db3bae345bd133","license":"MIT","scripts":{"test":"nyc _mocha test","jsdoc":"jsdoc -c jsdoc.json -r","coverage":"nyc --reporter=lcov _mocha test"},"_npmUser":{"name":"eternaldeiwos","email":"greg@gryphus.io"},"homepage":"https://github.com/EternalDeiwos/keyto#readme","keywords":["PEM","JWK","Webcrypto","JOSE"],"repository":{"url":"git+https://github.com/EternalDeiwos/keyto.git","type":"git"},"_npmVersion":"6.13.4","description":"A utility for translating cryptographic keys between representations","directories":{},"maintainers":[{"name":"christiansmith","email":"smith@anvil.io"},{"name":"codenamedmitri","email":"dzagidulin@gmail.com"},{"name":"cstefanache","email":"cornel.stefanache@gmail.com"},{"name":"eternaldeiwos","email":"greg@gryphus.io"},{"name":"ibudea","email":"budea_ionut@yahoo.com"},{"name":"keelerh","email":"keeley.erhardt@gmail.com"},{"name":"thelunararmy","email":"jcbailey1991@gmail.com"}],"_nodeVersion":"12.2.0","contributors":[{"name":"Greg Linklater","email":"greg@gryphus.io"},{"name":"JC Bailey","email":"jcbailey1991@gmail.com"}],"dependencies":{"asn1.js":"^5.2.0","elliptic":"^6.5.2","base64url":"^3.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","chai":"^4.0.2","glob":"^7.1.2","jsdoc":"^3.6.3","mocha":"^5.2.0","codecov":"^3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/keyto_2.0.0-alpha1_1583432273162_0.8789405932336196","host":"s3://npm-registry-packages"},"_id":"@trust/keyto@2.0.0-alpha1","version":"2.0.0-alpha1"}