Chromium Code Reviews| Index: Source/modules/crypto/KeyAlgorithm.cpp |
| diff --git a/Source/modules/crypto/Algorithm.cpp b/Source/modules/crypto/KeyAlgorithm.cpp |
| similarity index 52% |
| copy from Source/modules/crypto/Algorithm.cpp |
| copy to Source/modules/crypto/KeyAlgorithm.cpp |
| index f3cc089a18e78eb9944fc5dcb88a638aa1a811c3..170ba47e6a3961d6a6447a9c9ad05276357be399 100644 |
| --- a/Source/modules/crypto/Algorithm.cpp |
| +++ b/Source/modules/crypto/KeyAlgorithm.cpp |
| @@ -1,5 +1,5 @@ |
| /* |
| - * Copyright (C) 2013 Google Inc. All rights reserved. |
| + * Copyright (C) 2014 Google Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| @@ -29,29 +29,58 @@ |
| */ |
| #include "config.h" |
| -#include "modules/crypto/Algorithm.h" |
| +#include "modules/crypto/KeyAlgorithm.h" |
| +#include "modules/crypto/AesKeyAlgorithm.h" |
| +#include "modules/crypto/HmacKeyAlgorithm.h" |
| #include "modules/crypto/NormalizeAlgorithm.h" |
| +#include "modules/crypto/RsaHashedKeyAlgorithm.h" |
| +#include "modules/crypto/RsaKeyAlgorithm.h" |
| #include "wtf/text/WTFString.h" |
| namespace WebCore { |
| -DEFINE_GC_INFO(Algorithm); |
| +DEFINE_GC_INFO(KeyAlgorithm); |
| -PassRefPtrWillBeRawPtr<Algorithm> Algorithm::create(const blink::WebCryptoAlgorithm& algorithm) |
| +PassRefPtrWillBeRawPtr<KeyAlgorithm> KeyAlgorithm::create(const blink::WebCryptoKeyAlgorithm& algorithm) |
| { |
| - return adoptRefWillBeNoop(new Algorithm(algorithm)); |
| + switch (algorithm.paramsType()) { |
| + case blink::WebCryptoKeyAlgorithmParamsTypeNone: |
| + return adoptRefWillBeNoop(new KeyAlgorithm(algorithm)); |
| + case blink::WebCryptoKeyAlgorithmParamsTypeAes: |
| + return AesKeyAlgorithm::create(algorithm); |
| + case blink::WebCryptoKeyAlgorithmParamsTypeHmac: |
| + return HmacKeyAlgorithm::create(algorithm); |
| + case blink::WebCryptoKeyAlgorithmParamsTypeRsa: |
| + return RsaKeyAlgorithm::create(algorithm); |
| + case blink::WebCryptoKeyAlgorithmParamsTypeRsaHashed: |
| + return RsaHashedKeyAlgorithm::create(algorithm); |
| + } |
| } |
| -Algorithm::Algorithm(const blink::WebCryptoAlgorithm& algorithm) |
| +PassRefPtrWillBeRawPtr<KeyAlgorithm> KeyAlgorithm::createHash(const blink::WebCryptoAlgorithm& hash) |
| +{ |
| + // Assume that none of the hash algorithms have any parameters. |
| + ASSERT(hash.paramsType() == blink::WebCryptoAlgorithmParamsTypeNone); |
| + return adoptRefWillBeNoop(new KeyAlgorithm(blink::WebCryptoKeyAlgorithm(hash.id(), nullptr))); |
| +} |
| + |
| +KeyAlgorithm::KeyAlgorithm(const blink::WebCryptoKeyAlgorithm& algorithm) |
| : m_algorithm(algorithm) |
| { |
| ScriptWrappable::init(this); |
| } |
| -String Algorithm::name() |
| +String KeyAlgorithm::name() |
| { |
| return algorithmIdToName(m_algorithm.id()); |
| } |
| +blink::WebCryptoKeyAlgorithmParamsType KeyAlgorithm::type() const |
| +{ |
| + return m_algorithm.paramsType(); |
| +} |
| + |
| +void KeyAlgorithm::trace(Visitor*) { } |
|
abarth-chromium
2014/02/25 07:51:41
The { and } should each be on separate lines.
eroman
2014/02/25 08:33:15
Moved to header
|
| + |
| } // namespace WebCore |