cryptoUtils.js 828 B

1234567891011121314151617181920212223242526
  1. //WebCrypto API (crypto.subtle) не работает без https, поэтому приходится извращаться через sjcl
  2. import sjclWrapper from './sjclWrapper';
  3. //не менять
  4. const iv = 'B6E2XejNh2dS';
  5. const salt = 'Liberama project is awesome';
  6. export function aesEncrypt(data, password) {
  7. return sjclWrapper.codec.bytes.fromBits(
  8. sjclWrapper.encryptArray(
  9. password, sjclWrapper.codec.bytes.toBits(data), {iv, salt}
  10. ).ct
  11. );
  12. }
  13. export function aesDecrypt(data, password) {
  14. return sjclWrapper.codec.bytes.fromBits(
  15. sjclWrapper.decryptArray(
  16. password, {ct: sjclWrapper.codec.bytes.toBits(data)}, {iv, salt}
  17. )
  18. );
  19. }
  20. export function sha256(str) {
  21. return sjclWrapper.codec.bytes.fromBits(sjclWrapper.hash.sha256.hash(str));
  22. }