fix: relay signature handling

A change sometime ago moved to setting some signature fields in the incoming
object to undefined as opposed to deleting them. The trouble is that downstream
code checks against existence, not undefinedness and rejects the message.

Resolves: #9665
This commit is contained in:
amy bones 2023-01-18 20:16:41 -08:00
parent d05ab9bf46
commit c5de597079
No known key found for this signature in database
GPG Key ID: 819528B765A64B82

View File

@ -70,13 +70,13 @@ export class LdSignature {
...options, ...options,
"@context": "https://w3id.org/identity/v1", "@context": "https://w3id.org/identity/v1",
}; };
transformedOptions["type"] = undefined; delete transformedOptions["type"];
transformedOptions["id"] = undefined; delete transformedOptions["id"];
transformedOptions["signatureValue"] = undefined; delete transformedOptions["signatureValue"];
const canonizedOptions = await this.normalize(transformedOptions); const canonizedOptions = await this.normalize(transformedOptions);
const optionsHash = this.sha256(canonizedOptions); const optionsHash = this.sha256(canonizedOptions);
const transformedData = { ...data }; const transformedData = { ...data };
transformedData["signature"] = undefined; delete transformedData["signature"];
const cannonidedData = await this.normalize(transformedData); const cannonidedData = await this.normalize(transformedData);
if (this.debug) console.debug(`cannonidedData: ${cannonidedData}`); if (this.debug) console.debug(`cannonidedData: ${cannonidedData}`);
const documentHash = this.sha256(cannonidedData); const documentHash = this.sha256(cannonidedData);