2020-01-18 10:13:50 +01:00
|
|
|
import classic from 'ember-classic-decorator';
|
2018-12-29 01:27:37 +01:00
|
|
|
import Service from '@ember/service';
|
2015-10-25 19:38:14 +01:00
|
|
|
import generatePassphrase from '../utils/generate-passphrase';
|
2016-09-20 01:44:29 +02:00
|
|
|
import sjcl from 'sjcl';
|
2015-10-25 19:38:14 +01:00
|
|
|
|
2020-01-18 10:13:50 +01:00
|
|
|
@classic
|
|
|
|
export default class EncryptionService extends Service {
|
|
|
|
key = null;
|
2015-10-25 19:38:14 +01:00
|
|
|
|
2015-10-29 12:50:00 +01:00
|
|
|
decrypt(value) {
|
|
|
|
return JSON.parse(
|
|
|
|
sjcl.decrypt(
|
2018-12-29 20:35:04 +01:00
|
|
|
this.key,
|
2015-10-29 12:50:00 +01:00
|
|
|
value
|
|
|
|
)
|
|
|
|
);
|
2020-01-18 10:13:50 +01:00
|
|
|
}
|
2015-10-29 12:50:00 +01:00
|
|
|
|
|
|
|
encrypt(value) {
|
|
|
|
return sjcl.encrypt(
|
2018-12-29 20:35:04 +01:00
|
|
|
this.key,
|
2015-10-29 12:50:00 +01:00
|
|
|
JSON.stringify(value)
|
|
|
|
);
|
2020-01-18 10:13:50 +01:00
|
|
|
}
|
2015-10-29 12:50:00 +01:00
|
|
|
|
2015-10-25 19:38:14 +01:00
|
|
|
generateKey() {
|
2016-01-28 23:48:14 +01:00
|
|
|
const passphraseLength = 40;
|
2015-10-25 19:38:14 +01:00
|
|
|
this.set('key', generatePassphrase(passphraseLength));
|
|
|
|
}
|
2020-01-18 10:13:50 +01:00
|
|
|
}
|