diff --git a/types/openpgp/index.d.ts b/types/openpgp/index.d.ts index abd59350b8..edbe0eb77c 100644 --- a/types/openpgp/index.d.ts +++ b/types/openpgp/index.d.ts @@ -37,8 +37,8 @@ export interface EncryptOptions { } export interface EncryptedMessage { - data: string, - message: string, + data?: string, + message?: message.Message, } export interface DecryptOptions { @@ -571,6 +571,10 @@ export namespace message { @param keys array of keys to verify signatures */ verify(keys: Array): Array, + + packets: { + write(): Uint8Array, + }, } /** creates new message object from binary data @@ -595,7 +599,7 @@ export namespace message { * @returns {Message} new message object * @static */ - function read(data: Uint8Array): Message; + function read(data: Uint8Array): Promise; } export namespace packet { diff --git a/types/openpgp/openpgp-tests.ts b/types/openpgp/openpgp-tests.ts index aeabfd2768..30f9adbc8b 100644 --- a/types/openpgp/openpgp-tests.ts +++ b/types/openpgp/openpgp-tests.ts @@ -70,6 +70,45 @@ Promise.all(promises).then(function (values) { // failure }); +openpgp.initWorker({ path:'openpgp.worker.js' }); + +(async () => { + let msgOptions: openpgp.EncryptOptions; + + msgOptions = { + message: openpgp.message.fromBinary(new Uint8Array([0x01, 0x01, 0x01])), + passwords: ['secret stuff'], + armor: false, + }; + + let cipher = await openpgp.encrypt(msgOptions); + let encrypted = cipher.message.packets.write(); // get raw encrypted packets as Uint8Array + + let plain = await openpgp.decrypt({ + message: await openpgp.message.read(encrypted), + passwords: ['secret stuff'], + format: 'binary' + }); + + return plain.data; +})(); + +(async () => { + let cipher = await openpgp.encrypt({ + message: openpgp.message.fromText('hello world'), + passwords: 'super secure', + armor: true, + }); + let encrypted = cipher.data; + + let plain = await openpgp.decrypt({ + message: await openpgp.message.readArmored(encrypted), + passwords: 'super secure', + }); + + return plain.data; +})(); + // Open PGP Tests diff --git a/types/openpgp/ts3.2/index.d.ts b/types/openpgp/ts3.2/index.d.ts index 7e5a2ea34d..0bf040bc17 100644 --- a/types/openpgp/ts3.2/index.d.ts +++ b/types/openpgp/ts3.2/index.d.ts @@ -36,8 +36,8 @@ export interface EncryptOptions { } export interface EncryptedMessage { - data: string, - message: string, + data?: string, + message?: message.Message, } export interface DecryptOptions { @@ -570,6 +570,10 @@ export namespace message { @param keys array of keys to verify signatures */ verify(keys: Array): Array, + + packets: { + write(): Uint8Array, + }, } /** creates new message object from binary data @@ -594,7 +598,7 @@ export namespace message { * @returns {Message} new message object * @static */ - function read(data: Uint8Array): Message; + function read(data: Uint8Array): Promise; } export namespace packet { diff --git a/types/openpgp/ts3.2/openpgp-tests.ts b/types/openpgp/ts3.2/openpgp-tests.ts index aeabfd2768..30f9adbc8b 100644 --- a/types/openpgp/ts3.2/openpgp-tests.ts +++ b/types/openpgp/ts3.2/openpgp-tests.ts @@ -70,6 +70,45 @@ Promise.all(promises).then(function (values) { // failure }); +openpgp.initWorker({ path:'openpgp.worker.js' }); + +(async () => { + let msgOptions: openpgp.EncryptOptions; + + msgOptions = { + message: openpgp.message.fromBinary(new Uint8Array([0x01, 0x01, 0x01])), + passwords: ['secret stuff'], + armor: false, + }; + + let cipher = await openpgp.encrypt(msgOptions); + let encrypted = cipher.message.packets.write(); // get raw encrypted packets as Uint8Array + + let plain = await openpgp.decrypt({ + message: await openpgp.message.read(encrypted), + passwords: ['secret stuff'], + format: 'binary' + }); + + return plain.data; +})(); + +(async () => { + let cipher = await openpgp.encrypt({ + message: openpgp.message.fromText('hello world'), + passwords: 'super secure', + armor: true, + }); + let encrypted = cipher.data; + + let plain = await openpgp.decrypt({ + message: await openpgp.message.readArmored(encrypted), + passwords: 'super secure', + }); + + return plain.data; +})(); + // Open PGP Tests