add detached sign/verify options to cleartext

This commit is contained in:
Sanjana Rajan 2017-03-06 16:12:55 -08:00
parent 4fd4c13ddd
commit c3908cbec0

View File

@ -69,6 +69,15 @@ CleartextMessage.prototype.getSigningKeyIds = function() {
* @param {Array<module:key~Key>} privateKeys private keys with decrypted secret key data for signing
*/
CleartextMessage.prototype.sign = function(privateKeys) {
this.signature = this.signDetached(privateKeys);
};
/**
* Sign the cleartext message
* @param {Array<module:key~Key>} privateKeys private keys with decrypted secret key data for signing
* @return {module:signature~Signature} new detached signature of message content
*/
CleartextMessage.prototype.signDetached = function(privateKeys) {
var packetlist = new packet.List();
var literalDataPacket = new packet.Literal();
literalDataPacket.setText(this.text);
@ -87,7 +96,7 @@ CleartextMessage.prototype.sign = function(privateKeys) {
signaturePacket.sign(signingKeyPacket, literalDataPacket);
packetlist.push(signaturePacket);
}
this.signature = new sigModule.Signature(packetlist);
return new sigModule.Signature(packetlist);
};
/**
@ -96,8 +105,17 @@ CleartextMessage.prototype.sign = function(privateKeys) {
* @return {Array<{keyid: module:type/keyid, valid: Boolean}>} list of signer's keyid and validity of signature
*/
CleartextMessage.prototype.verify = function(keys) {
return this.verifyDetached(this.signature, keys);
};
/**
* Verify signatures of cleartext signed message
* @param {Array<module:key~Key>} keys array of keys to verify signatures
* @return {Array<{keyid: module:type/keyid, valid: Boolean}>} list of signer's keyid and validity of signature
*/
CleartextMessage.prototype.verifyDetached = function(signature, keys) {
var result = [];
var signatureList = this.signature.packets;
var signatureList = signature.packets;
var literalDataPacket = new packet.Literal();
// we assume that cleartext signature is generated based on UTF8 cleartext
literalDataPacket.setText(this.text);