Chromium Code Reviews| Index: components/gcm_driver/crypto/encryption_header_parsers.h |
| diff --git a/components/gcm_driver/crypto/encryption_header_parsers.h b/components/gcm_driver/crypto/encryption_header_parsers.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0ca82a0e68e9d914f7713f5a9cff9bdfa2b796ea |
| --- /dev/null |
| +++ b/components/gcm_driver/crypto/encryption_header_parsers.h |
| @@ -0,0 +1,43 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef COMPONENTS_GCM_DRIVER_CRYPTO_ENCRYPTION_HEADER_PARSERS_H_ |
| +#define COMPONENTS_GCM_DRIVER_CRYPTO_ENCRYPTION_HEADER_PARSERS_H_ |
| + |
| +#include <stdint.h> |
| +#include <string> |
| +#include <vector> |
| + |
| +namespace gcm { |
| + |
| +// Structure representing a parsed and decoded value from the Encryption header. |
| +// https://tools.ietf.org/html/draft-thomson-http-encryption-01#section-3 |
| +struct EncryptionHeaderValue { |
| + std::string keyid; |
| + std::string salt; |
| + int64_t rs = 4096; |
| +}; |
| + |
| +// Structure representing a parsed and decoded value from the Encryption-Key |
| +// header. |
| +// https://tools.ietf.org/html/draft-thomson-http-encryption-01#section-4 |
| +struct EncryptionKeyHeaderValue { |
| + std::string keyid; |
| + std::string key; |
| + std::string dh; |
| +}; |
| + |
| +// Parses |input| following the syntax of the Encryption HTTP header. Returns |
| +// whether the |input| could be parsed into |result| successfully. |
| +bool ParseEncryptionHeader(const std::string& input, |
| + std::vector<EncryptionHeaderValue>* result); |
| + |
| +// Parses |input| following the syntax of the Encryption-Key HTTP header. |
| +// Returns whether the |input| could be parsed into |result| successfully. |
| +bool ParseEncryptionKeyHeader(const std::string& input, |
|
johnme
2015/07/21 14:34:43
I'm not sure this is the optimal API. Unless I'm m
Peter Beverloo
2015/07/21 17:51:30
My thinking here is that they are two separate hea
|
| + std::vector<EncryptionKeyHeaderValue>* result); |
| + |
| +} // namespace gcm |
| + |
| +#endif // COMPONENTS_GCM_DRIVER_CRYPTO_ENCRYPTION_HEADER_PARSERS_H_ |