aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers/custom-jsonld-signature.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2019-04-15 10:49:46 +0200
committerChocobozzz <me@florianbigard.com>2019-04-15 14:39:52 +0200
commit1eddc9a74f9a80fa5d0cb25fceb3fc47a1a3c14a (patch)
tree91a10310cdf924779527525d39f8eb7e09e4ba49 /server/helpers/custom-jsonld-signature.ts
parent31b48aad478506d4214586f02792816efa968e4b (diff)
downloadPeerTube-1eddc9a74f9a80fa5d0cb25fceb3fc47a1a3c14a.tar.gz
PeerTube-1eddc9a74f9a80fa5d0cb25fceb3fc47a1a3c14a.tar.zst
PeerTube-1eddc9a74f9a80fa5d0cb25fceb3fc47a1a3c14a.zip
Add user adminFlags
Diffstat (limited to 'server/helpers/custom-jsonld-signature.ts')
-rw-r--r--server/helpers/custom-jsonld-signature.ts68
1 files changed, 66 insertions, 2 deletions
diff --git a/server/helpers/custom-jsonld-signature.ts b/server/helpers/custom-jsonld-signature.ts
index 27a187db1..a3bceb047 100644
--- a/server/helpers/custom-jsonld-signature.ts
+++ b/server/helpers/custom-jsonld-signature.ts
@@ -1,13 +1,77 @@
1import * as AsyncLRU from 'async-lru' 1import * as AsyncLRU from 'async-lru'
2import * as jsonld from 'jsonld' 2import * as jsonld from 'jsonld'
3import * as jsig from 'jsonld-signatures' 3import * as jsig from 'jsonld-signatures'
4import { logger } from './logger'
5
6const CACHE = {
7 'https://w3id.org/security/v1': {
8 '@context': {
9 'id': '@id',
10 'type': '@type',
11
12 'dc': 'http://purl.org/dc/terms/',
13 'sec': 'https://w3id.org/security#',
14 'xsd': 'http://www.w3.org/2001/XMLSchema#',
15
16 'EcdsaKoblitzSignature2016': 'sec:EcdsaKoblitzSignature2016',
17 'Ed25519Signature2018': 'sec:Ed25519Signature2018',
18 'EncryptedMessage': 'sec:EncryptedMessage',
19 'GraphSignature2012': 'sec:GraphSignature2012',
20 'LinkedDataSignature2015': 'sec:LinkedDataSignature2015',
21 'LinkedDataSignature2016': 'sec:LinkedDataSignature2016',
22 'CryptographicKey': 'sec:Key',
23
24 'authenticationTag': 'sec:authenticationTag',
25 'canonicalizationAlgorithm': 'sec:canonicalizationAlgorithm',
26 'cipherAlgorithm': 'sec:cipherAlgorithm',
27 'cipherData': 'sec:cipherData',
28 'cipherKey': 'sec:cipherKey',
29 'created': { '@id': 'dc:created', '@type': 'xsd:dateTime' },
30 'creator': { '@id': 'dc:creator', '@type': '@id' },
31 'digestAlgorithm': 'sec:digestAlgorithm',
32 'digestValue': 'sec:digestValue',
33 'domain': 'sec:domain',
34 'encryptionKey': 'sec:encryptionKey',
35 'expiration': { '@id': 'sec:expiration', '@type': 'xsd:dateTime' },
36 'expires': { '@id': 'sec:expiration', '@type': 'xsd:dateTime' },
37 'initializationVector': 'sec:initializationVector',
38 'iterationCount': 'sec:iterationCount',
39 'nonce': 'sec:nonce',
40 'normalizationAlgorithm': 'sec:normalizationAlgorithm',
41 'owner': { '@id': 'sec:owner', '@type': '@id' },
42 'password': 'sec:password',
43 'privateKey': { '@id': 'sec:privateKey', '@type': '@id' },
44 'privateKeyPem': 'sec:privateKeyPem',
45 'publicKey': { '@id': 'sec:publicKey', '@type': '@id' },
46 'publicKeyBase58': 'sec:publicKeyBase58',
47 'publicKeyPem': 'sec:publicKeyPem',
48 'publicKeyWif': 'sec:publicKeyWif',
49 'publicKeyService': { '@id': 'sec:publicKeyService', '@type': '@id' },
50 'revoked': { '@id': 'sec:revoked', '@type': 'xsd:dateTime' },
51 'salt': 'sec:salt',
52 'signature': 'sec:signature',
53 'signatureAlgorithm': 'sec:signingAlgorithm',
54 'signatureValue': 'sec:signatureValue'
55 }
56 }
57}
4 58
5const nodeDocumentLoader = jsonld.documentLoaders.node() 59const nodeDocumentLoader = jsonld.documentLoaders.node()
6 60
7const lru = new AsyncLRU({ 61const lru = new AsyncLRU({
8 max: 10, 62 max: 10,
9 load: (key, cb) => { 63 load: (url, cb) => {
10 nodeDocumentLoader(key, cb) 64 if (CACHE[ url ] !== undefined) {
65 logger.debug('Using cache for JSON-LD %s.', url)
66
67 return cb(null, {
68 contextUrl: null,
69 document: CACHE[ url ],
70 documentUrl: url
71 })
72 }
73
74 nodeDocumentLoader(url, cb)
11 } 75 }
12}) 76})
13 77