diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-08-26 13:47:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-26 13:47:38 +0200 |
commit | 00840f4f2edb8d1d46638ccbc90a1f4462d0867a (patch) | |
tree | c4f6c9a4967df5d5f23094ddefed88c621d6c3ff /app/helpers | |
parent | 1cebfed23e03b9d31796cdc139acde1b6dccd9f3 (diff) |
Add handling of Linked Data Signatures in payloads (#4687)
* Add handling of Linked Data Signatures in payloads * Add a way to sign JSON, fix canonicalization of signature options * Fix signatureValue encoding, send out signed JSON when distributing * Add missing security context
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/jsonld_helper.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/app/helpers/jsonld_helper.rb b/app/helpers/jsonld_helper.rb index 8355eb055..09446c8be 100644 --- a/app/helpers/jsonld_helper.rb +++ b/app/helpers/jsonld_helper.rb @@ -17,6 +17,11 @@ module JsonLdHelper !json.nil? && equals_or_includes?(json['@context'], ActivityPub::TagManager::CONTEXT) end + def canonicalize(json) + graph = RDF::Graph.new << JSON::LD::API.toRdf(json) + graph.dump(:normalize) + end + def fetch_resource(uri) response = build_request(uri).perform return if response.code != 200 @@ -29,6 +34,14 @@ module JsonLdHelper nil end + def merge_context(context, new_context) + if context.is_a?(Array) + context << new_context + else + [context, new_context] + end + end + private def build_request(uri) |