Now wrapping up...
This commit is contained in:
@@ -17,6 +17,8 @@ export let encrypt_content = async function encrypt_content(
|
|||||||
return { base64, iv };
|
return { base64, iv };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// This does not handle errors (invalid key/password) well.
|
||||||
export let decrypt_content = async function decrypt_content(
|
export let decrypt_content = async function decrypt_content(
|
||||||
base64Content: string, iv: Uint8Array, keyData: string
|
base64Content: string, iv: Uint8Array, keyData: string
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ $effect(() => {
|
|||||||
tmp_entry_obj_changed = true;
|
tmp_entry_obj_changed = true;
|
||||||
// }
|
// }
|
||||||
} else {
|
} else {
|
||||||
console.log('TEST: tmp_entry_obj == orig_entry_obj');
|
// console.log('TEST: tmp_entry_obj == orig_entry_obj');
|
||||||
tmp_entry_obj_changed = false;
|
tmp_entry_obj_changed = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -168,11 +168,12 @@ async function update_journal_entry() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (tmp_entry_obj?.content && tmp_entry_obj?.private) {
|
if (tmp_entry_obj?.content && tmp_entry_obj?.private) {
|
||||||
console.log('TEST: Saving encrypted content', tmp_entry_obj?.content);
|
// console.log('TEST: Saving encrypted content', tmp_entry_obj?.content);
|
||||||
content = tmp_entry_obj?.content;
|
content = tmp_entry_obj?.content;
|
||||||
|
// console.log('TEST: journal_key', journal_key);
|
||||||
|
|
||||||
// Encrypt the content
|
// Encrypt the content
|
||||||
let encrypted_base64 = await ae_util.encrypt_content(content, test_key);
|
let encrypted_base64 = await ae_util.encrypt_content(content, journal_key);
|
||||||
encrypted_base64_content = encrypted_base64.base64;
|
encrypted_base64_content = encrypted_base64.base64;
|
||||||
encryption_iv = encrypted_base64.iv;
|
encryption_iv = encrypted_base64.iv;
|
||||||
console.log(`IV: ${encryption_iv}; Encrypted: ${encrypted_base64_content}`);
|
console.log(`IV: ${encryption_iv}; Encrypted: ${encrypted_base64_content}`);
|
||||||
@@ -184,7 +185,7 @@ async function update_journal_entry() {
|
|||||||
data_kv.content = null;
|
data_kv.content = null;
|
||||||
decrypted_content = '';
|
decrypted_content = '';
|
||||||
} else if (decrypted_content && !tmp_entry_obj?.private) {
|
} else if (decrypted_content && !tmp_entry_obj?.private) {
|
||||||
console.log('TEST: Saving decrypted content', decrypted_content);
|
// console.log('TEST: Saving decrypted content', decrypted_content);
|
||||||
content = decrypted_content;
|
content = decrypted_content;
|
||||||
|
|
||||||
data_kv.content = content;
|
data_kv.content = content;
|
||||||
@@ -283,13 +284,25 @@ async function change_journal_id() {
|
|||||||
// await ae_util.decrypt_content(base64, iv, keyData);
|
// await ae_util.decrypt_content(base64, iv, keyData);
|
||||||
// })();
|
// })();
|
||||||
|
|
||||||
const test_key = "my-secret-key";
|
// let journal_key: string = $state( 'my-secret-key-111');
|
||||||
let content = "This is my test content to encrypt and decrypt.";
|
// let journal_key: string = $state($lq__journal_obj?.passcode);
|
||||||
|
let journal_key = $derived(() => {
|
||||||
|
return $lq__journal_obj?.passcode || 'my-secret-key-111';
|
||||||
|
});
|
||||||
|
// console.log('TEST: journal_key', journal_key);
|
||||||
|
let content = ''; // "This is my test content to encrypt and decrypt.";
|
||||||
let encrypted_base64_content: string = $state('');
|
let encrypted_base64_content: string = $state('');
|
||||||
let encryption_iv: null|Uint8Array<ArrayBuffer> = $state(null);
|
let encryption_iv: null|Uint8Array<ArrayBuffer> = $state(null);
|
||||||
let decrypted_content: string = $state('');
|
let decrypted_content: string = $state('');
|
||||||
let trigger_decrypt: boolean = $state(false);
|
let trigger_decrypt: boolean = $state(false);
|
||||||
|
|
||||||
|
$effect(() => {
|
||||||
|
if ($lq__journal_obj?.passcode) {
|
||||||
|
console.log('TEST: lq__journal_obj?.passcode', $lq__journal_obj?.passcode);
|
||||||
|
journal_key = $lq__journal_obj?.passcode;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$effect(async () => {
|
$effect(async () => {
|
||||||
if (tmp_entry_obj?.content_encrypted && trigger_decrypt) {
|
if (tmp_entry_obj?.content_encrypted && trigger_decrypt) {
|
||||||
trigger_decrypt = false;
|
trigger_decrypt = false;
|
||||||
@@ -302,8 +315,21 @@ $effect(async () => {
|
|||||||
console.log(`IV: ${encryption_iv}; Encrypted: ${encrypted_base64_content}`);
|
console.log(`IV: ${encryption_iv}; Encrypted: ${encrypted_base64_content}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
let decrypted = await ae_util.decrypt_content(encrypted_base64_content, encryption_iv, test_key);
|
let decrypted: string|null = null;
|
||||||
|
try {
|
||||||
|
decrypted = await ae_util.decrypt_content(encrypted_base64_content, encryption_iv, journal_key);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error decrypting content:', error);
|
||||||
|
alert('Failed to decrypt content. Please check the passcode.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// let decrypted = await ae_util.decrypt_content(encrypted_base64_content, encryption_iv, journal_key);
|
||||||
// decrypted_content = 'XXX '+decrypted+' XXX';
|
// decrypted_content = 'XXX '+decrypted+' XXX';
|
||||||
|
|
||||||
|
if (!decrypted) {
|
||||||
|
alert('Failed to decrypt content. Please check the passcode.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
decrypted_content = decrypted;
|
decrypted_content = decrypted;
|
||||||
if (log_lvl) {
|
if (log_lvl) {
|
||||||
console.log('Decrypted content:', decrypted_content);
|
console.log('Decrypted content:', decrypted_content);
|
||||||
@@ -318,11 +344,11 @@ $effect(async () => {
|
|||||||
// if (tmp_entry_obj?.content) {
|
// if (tmp_entry_obj?.content) {
|
||||||
// content = tmp_entry_obj?.content;
|
// content = tmp_entry_obj?.content;
|
||||||
|
|
||||||
// let encrypted_base64 = await ae_util.encrypt_content(content, test_key);
|
// let encrypted_base64 = await ae_util.encrypt_content(content, journal_key);
|
||||||
// encrypted_base64_content = encrypted_base64.base64;
|
// encrypted_base64_content = encrypted_base64.base64;
|
||||||
// encryption_iv = encrypted_base64.iv;
|
// encryption_iv = encrypted_base64.iv;
|
||||||
|
|
||||||
// let decrypted = await ae_util.decrypt_content(encrypted_base64_content, encryption_iv, test_key);
|
// let decrypted = await ae_util.decrypt_content(encrypted_base64_content, encryption_iv, journal_key);
|
||||||
// decrypted_content = decrypted;
|
// decrypted_content = decrypted;
|
||||||
// if (log_lvl) {
|
// if (log_lvl) {
|
||||||
// console.log('Decrypted content:', decrypted_content);
|
// console.log('Decrypted content:', decrypted_content);
|
||||||
@@ -880,15 +906,15 @@ $effect(async () => {
|
|||||||
{/if}
|
{/if}
|
||||||
</article>
|
</article>
|
||||||
<!-- {@html async () => {
|
<!-- {@html async () => {
|
||||||
const { base64, iv } = await encrypt_content(content, test_key);
|
const { base64, iv } = await encrypt_content(content, journal_key);
|
||||||
// console.log('Encrypted content:', base64);
|
// console.log('Encrypted content:', base64);
|
||||||
// console.log('IV:', iv);
|
// console.log('IV:', iv);
|
||||||
const decryptedContent = await decrypt_content(base64, iv, test_key);
|
const decryptedContent = await decrypt_content(base64, iv, journal_key);
|
||||||
// console.log('Decrypted content:', decryptedContent);
|
// console.log('Decrypted content:', decryptedContent);
|
||||||
return base64;
|
return base64;
|
||||||
}} -->
|
}} -->
|
||||||
|
|
||||||
<!-- {@html encrypt_content($lq__journal_entry_obj?.content, test_key)} -->
|
<!-- {@html encrypt_content($lq__journal_entry_obj?.content, journal_key)} -->
|
||||||
<!-- --{@html encrypted_base64_content}-- -->
|
<!-- --{@html encrypted_base64_content}-- -->
|
||||||
<!-- {@html marked.parse($lq__journal_entry_obj?.content)} -->
|
<!-- {@html marked.parse($lq__journal_entry_obj?.content)} -->
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user