-function getMyPublicCert () {
- const certPath = join(CONFIG.STORAGE.CERT_DIR, PUBLIC_CERT_NAME)
- return readFilePromise(certPath, 'utf8')
+// Backward compatibility with "other" implementations
+async function isJsonLDRSA2017Verified (fromActor: MActor, signedDocument: any) {
+ const [ documentHash, optionsHash ] = await Promise.all([
+ createDocWithoutSignatureHash(signedDocument),
+ createSignatureHash(signedDocument.signature)
+ ])
+
+ const toVerify = optionsHash + documentHash
+
+ const verify = createVerify('RSA-SHA256')
+ verify.update(toVerify, 'utf8')
+
+ return verify.verify(fromActor.publicKey, signedDocument.signature.signatureValue, 'base64')
+}
+
+async function signJsonLDObject (byActor: MActor, data: any) {
+ const signature = {
+ type: 'RsaSignature2017',
+ creator: byActor.url,
+ created: new Date().toISOString()
+ }
+
+ const [ documentHash, optionsHash ] = await Promise.all([
+ createDocWithoutSignatureHash(data),
+ createSignatureHash(signature)
+ ])
+
+ const toSign = optionsHash + documentHash
+
+ const sign = createSign('RSA-SHA256')
+ sign.update(toSign, 'utf8')
+
+ const signatureValue = sign.sign(byActor.privateKey, 'base64')
+ Object.assign(signature, { signatureValue })
+
+ return Object.assign(data, { signature })