Are you getting the following error message when trying to encrypt or decrypt a Steem memo in ElectronJS or React Native using steem-js? Perhaps looking for something that works for your framework that you're using when building your cutting-edge Steem DApp?
Introducing Hivecrypt, a module that you can import into a wide range of JavaScript environments, including desktop and mobile app frameworks like ElectronJS, that wouldn't otherwise work with existing libraries.
Adapted from this pull request on dhive that was never merged into master
(plus the major help from this file), Hivecrypt was built on Crypto-JS that works on virtually any latest JavaScript environments, unlike the implementation on steem-js and the pull request mentioned above, that uses the crypto NodeJS module that only works on certain environments.
How to use?
Hivecrypt can be installed from npm
with the following command:
npm i hivecrypt
It can also be imported into the browser by including the following script tag in your HTML file, where Hivecrypt will be available through window.hivecrypt
:
<script src="https://unpkg.com/hivecrypt/bin/hivecrypt.min.js"></script>
Once installed, it may be used for encrypting and decrypting memos just like how it is done with steem-js, but works in more environments.
const hivecrypt = require('hivecrypt') // CommonJS
let encrypted = hivecrypt.encode('privatekey1','publickey2','#somesecretmessage')
let decrypted = hivecrypt.decode('privatekey2',encrypted)
console.log(encrypted,decrypted)
It might not be built with optimizing for the smallest package size in mind, but at least it is something that is usable for devs. And yes, it was originally written for Hive but works for any 3 character public key prefixes.