// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_BROWSER_AGGREGATION_SERVICE_PUBLIC_KEY_PARSING_UTILS_H_ #define CONTENT_BROWSER_AGGREGATION_SERVICE_PUBLIC_KEY_PARSING_UTILS_H_ #include <vector> #include "base/values.h" #include "content/browser/aggregation_service/public_key.h" #include "content/common/content_export.h" namespace content { namespace aggregation_service { // Constructs a public key vector from multiple JSON arrays of key definition // tagged with version ids. In case of an error or invalid JSON, returns an // empty vector. // // The expected JSON schema is as follows. // // { // "version" : "", // "keys" : [ // { // "id" : <arbitrary string identifying the key, e.g. a UUID>, // "key" : <base64-encoded public key>, // }, // { "id" : <different ID string>, ... }, // ... // ] // } // // Currently version will be ignored and not validated. CONTENT_EXPORT std::vector<PublicKey> GetPublicKeys(base::Value& value); } // namespace aggregation_service } // namespace content #endif // CONTENT_BROWSER_AGGREGATION_SERVICE_PUBLIC_KEY_PARSING_UTILS_H_