Now wrapping up...

This commit is contained in:
Scott Idem
2025-04-28 18:14:21 -04:00
parent cbb73ed3fd
commit 6094d5a79d
2 changed files with 40 additions and 12 deletions

View File

@@ -17,6 +17,8 @@ export let encrypt_content = async function encrypt_content(
return { base64, iv };
}
// This does not handle errors (invalid key/password) well.
export let decrypt_content = async function decrypt_content(
base64Content: string, iv: Uint8Array, keyData: string
) {

View File

@@ -131,7 +131,7 @@ $effect(() => {
tmp_entry_obj_changed = true;
// }
} else {
console.log('TEST: tmp_entry_obj == orig_entry_obj');
// console.log('TEST: tmp_entry_obj == orig_entry_obj');
tmp_entry_obj_changed = false;
}
});
@@ -168,11 +168,12 @@ async function update_journal_entry() {
};
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;
// console.log('TEST: journal_key', journal_key);
// 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;
encryption_iv = encrypted_base64.iv;
console.log(`IV: ${encryption_iv}; Encrypted: ${encrypted_base64_content}`);
@@ -184,7 +185,7 @@ async function update_journal_entry() {
data_kv.content = null;
decrypted_content = '';
} 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;
data_kv.content = content;
@@ -283,13 +284,25 @@ async function change_journal_id() {
// await ae_util.decrypt_content(base64, iv, keyData);
// })();
const test_key = "my-secret-key";
let content = "This is my test content to encrypt and decrypt.";
// let journal_key: string = $state( 'my-secret-key-111');
// 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 encryption_iv: null|Uint8Array<ArrayBuffer> = $state(null);
let decrypted_content: string = $state('');
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 () => {
if (tmp_entry_obj?.content_encrypted && trigger_decrypt) {
trigger_decrypt = false;
@@ -302,8 +315,21 @@ $effect(async () => {
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';
if (!decrypted) {
alert('Failed to decrypt content. Please check the passcode.');
return;
}
decrypted_content = decrypted;
if (log_lvl) {
console.log('Decrypted content:', decrypted_content);
@@ -318,11 +344,11 @@ $effect(async () => {
// if (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;
// 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;
// if (log_lvl) {
// console.log('Decrypted content:', decrypted_content);
@@ -880,15 +906,15 @@ $effect(async () => {
{/if}
</article>
<!-- {@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('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);
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 marked.parse($lq__journal_entry_obj?.content)} -->
</div>