| Index: content/child/webcrypto/generate_key_result.cc
|
| diff --git a/content/child/webcrypto/generate_key_result.cc b/content/child/webcrypto/generate_key_result.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1709e47b07f4473181cde9eafac47fc13c6de9f9
|
| --- /dev/null
|
| +++ b/content/child/webcrypto/generate_key_result.cc
|
| @@ -0,0 +1,67 @@
|
| +// Copyright 2014 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.
|
| +
|
| +#include "content/child/webcrypto/generate_key_result.h"
|
| +
|
| +#include "base/logging.h"
|
| +
|
| +namespace content {
|
| +
|
| +namespace webcrypto {
|
| +
|
| +GenerateKeyResult::GenerateKeyResult()
|
| + : type_(TYPE_NULL),
|
| + secret_key_(blink::WebCryptoKey::createNull()),
|
| + public_key_(blink::WebCryptoKey::createNull()),
|
| + private_key_(blink::WebCryptoKey::createNull()) {
|
| +}
|
| +
|
| +GenerateKeyResult::Type GenerateKeyResult::type() const {
|
| + return type_;
|
| +}
|
| +
|
| +const blink::WebCryptoKey& GenerateKeyResult::secret_key() const {
|
| + DCHECK_EQ(TYPE_SECRET_KEY, type_);
|
| + return secret_key_;
|
| +}
|
| +
|
| +const blink::WebCryptoKey& GenerateKeyResult::public_key() const {
|
| + DCHECK_EQ(TYPE_PUBLIC_PRIVATE_KEY_PAIR, type_);
|
| + return public_key_;
|
| +}
|
| +
|
| +const blink::WebCryptoKey& GenerateKeyResult::private_key() const {
|
| + DCHECK_EQ(TYPE_PUBLIC_PRIVATE_KEY_PAIR, type_);
|
| + return private_key_;
|
| +}
|
| +
|
| +void GenerateKeyResult::AssignSecretKey(const blink::WebCryptoKey& key) {
|
| + type_ = TYPE_SECRET_KEY;
|
| + secret_key_ = key;
|
| +}
|
| +
|
| +void GenerateKeyResult::AssignKeyPair(const blink::WebCryptoKey& public_key,
|
| + const blink::WebCryptoKey& private_key) {
|
| + type_ = TYPE_PUBLIC_PRIVATE_KEY_PAIR;
|
| + public_key_ = public_key;
|
| + private_key_ = private_key;
|
| +}
|
| +
|
| +void GenerateKeyResult::Complete(blink::WebCryptoResult* out) const {
|
| + switch (type_) {
|
| + case TYPE_NULL:
|
| + NOTREACHED();
|
| + break;
|
| + case TYPE_SECRET_KEY:
|
| + out->completeWithKey(secret_key());
|
| + break;
|
| + case TYPE_PUBLIC_PRIVATE_KEY_PAIR:
|
| + out->completeWithKeyPair(public_key(), private_key());
|
| + break;
|
| + }
|
| +}
|
| +
|
| +} // namespace webcrypto
|
| +
|
| +} // namespace content
|
|
|