-import {
- PRIVATE_RSA_KEY_SIZE,
- BCRYPT_SALT_SIZE
-} from '../initializers'
-import {
- bcryptComparePromise,
- bcryptGenSaltPromise,
- bcryptHashPromise,
- createPrivateKey,
- getPublicKey
-} from './core-utils'
-import { logger } from './logger'
-import { AccountInstance } from '../models/account/account-interface'
+import { BCRYPT_SALT_SIZE, PRIVATE_RSA_KEY_SIZE } from '../initializers'
+import { ActorModel } from '../models/activitypub/actor'
+import { bcryptComparePromise, bcryptGenSaltPromise, bcryptHashPromise, createPrivateKey, getPublicKey } from './core-utils'
import { jsig } from './custom-jsonld-signature'
+import { logger } from './logger'
async function createPrivateAndPublicKeys () {
logger.info('Generating a RSA key...')
return { privateKey: key, publicKey }
}
-function isSignatureVerified (fromAccount: AccountInstance, signedDocument: object) {
+function isSignatureVerified (fromActor: ActorModel, signedDocument: object) {
const publicKeyObject = {
'@context': jsig.SECURITY_CONTEXT_URL,
- '@id': fromAccount.url,
+ '@id': fromActor.url,
'@type': 'CryptographicKey',
- owner: fromAccount.url,
- publicKeyPem: fromAccount.publicKey
+ owner: fromActor.url,
+ publicKeyPem: fromActor.publicKey
}
const publicKeyOwnerObject = {
'@context': jsig.SECURITY_CONTEXT_URL,
- '@id': fromAccount.url,
+ '@id': fromActor.url,
publicKey: [ publicKeyObject ]
}
return jsig.promises.verify(signedDocument, options)
.catch(err => {
- logger.error('Cannot check signature.', err)
+ logger.error('Cannot check signature.', { err })
return false
})
}
-function signObject (byAccount: AccountInstance, data: any) {
+function signObject (byActor: ActorModel, data: any) {
const options = {
- privateKeyPem: byAccount.privateKey,
- creator: byAccount.url
+ privateKeyPem: byActor.privateKey,
+ creator: byActor.url,
+ algorithm: 'RsaSignature2017'
}
return jsig.promises.sign(data, options)