22 lines
531 B
JavaScript
22 lines
531 B
JavaScript
import classic from 'ember-classic-decorator';
|
|
import Service from '@ember/service';
|
|
import generatePassphrase from '../utils/generate-passphrase';
|
|
import sjcl from 'sjcl';
|
|
|
|
@classic
|
|
export default class EncryptionService extends Service {
|
|
key = null;
|
|
|
|
decrypt(value) {
|
|
return JSON.parse(sjcl.decrypt(this.key, value));
|
|
}
|
|
|
|
encrypt(value) {
|
|
return sjcl.encrypt(this.key, JSON.stringify(value));
|
|
}
|
|
|
|
generateKey() {
|
|
const passphraseLength = 40;
|
|
this.set('key', generatePassphrase(passphraseLength));
|
|
}
|
|
}
|