Changeset 158494 in webkit


Ignore:
Timestamp:
Nov 2, 2013 11:19:35 AM (10 years ago)
Author:
ap@apple.com
Message:

Implement remaining SHA variations for WebCrypto
https://bugs.webkit.org/show_bug.cgi?id=123659

Reviewed by Anders Carlsson.

Source/WebCore:

Tests: crypto/subtle/sha-224.html

crypto/subtle/sha-256.html
crypto/subtle/sha-384.html
crypto/subtle/sha-512.html

  • WebCore.xcodeproj/project.pbxproj:
  • crypto/algorithms/CryptoAlgorithmSHA224.cpp: Added.

(WebCore::CryptoAlgorithmSHA224::CryptoAlgorithmSHA224):
(WebCore::CryptoAlgorithmSHA224::~CryptoAlgorithmSHA224):
(WebCore::CryptoAlgorithmSHA224::create):
(WebCore::CryptoAlgorithmSHA224::identifier):

  • crypto/algorithms/CryptoAlgorithmSHA224.h: Added.
  • crypto/algorithms/CryptoAlgorithmSHA256.cpp: Added.

(WebCore::CryptoAlgorithmSHA256::CryptoAlgorithmSHA256):
(WebCore::CryptoAlgorithmSHA256::~CryptoAlgorithmSHA256):
(WebCore::CryptoAlgorithmSHA256::create):
(WebCore::CryptoAlgorithmSHA256::identifier):

  • crypto/algorithms/CryptoAlgorithmSHA256.h: Added.
  • crypto/algorithms/CryptoAlgorithmSHA384.cpp: Added.

(WebCore::CryptoAlgorithmSHA384::CryptoAlgorithmSHA384):
(WebCore::CryptoAlgorithmSHA384::~CryptoAlgorithmSHA384):
(WebCore::CryptoAlgorithmSHA384::create):
(WebCore::CryptoAlgorithmSHA384::identifier):

  • crypto/algorithms/CryptoAlgorithmSHA384.h: Added.
  • crypto/algorithms/CryptoAlgorithmSHA512.cpp: Added.

(WebCore::CryptoAlgorithmSHA512::CryptoAlgorithmSHA512):
(WebCore::CryptoAlgorithmSHA512::~CryptoAlgorithmSHA512):
(WebCore::CryptoAlgorithmSHA512::create):
(WebCore::CryptoAlgorithmSHA512::identifier):

  • crypto/algorithms/CryptoAlgorithmSHA512.h: Added.
  • crypto/mac/CryptoAlgorithmRegistryMac.cpp:

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):

  • crypto/mac/CryptoAlgorithmSHA224Mac.cpp: Added.

(WebCore::CryptoAlgorithmSHA224::digest):

  • crypto/mac/CryptoAlgorithmSHA256Mac.cpp: Added.

(WebCore::CryptoAlgorithmSHA256::digest):

  • crypto/mac/CryptoAlgorithmSHA384Mac.cpp: Added.

(WebCore::CryptoAlgorithmSHA384::digest):

  • crypto/mac/CryptoAlgorithmSHA512Mac.cpp: Added.

(WebCore::CryptoAlgorithmSHA512::digest):

LayoutTests:

  • crypto/subtle/sha-224-expected.txt: Added.
  • crypto/subtle/sha-224.html: Added.
  • crypto/subtle/sha-256-expected.txt: Added.
  • crypto/subtle/sha-256.html: Added.
  • crypto/subtle/sha-384-expected.txt: Added.
  • crypto/subtle/sha-384.html: Added.
  • crypto/subtle/sha-512-expected.txt: Added.
  • crypto/subtle/sha-512.html: Added.
Location:
trunk
Files:
8 added
4 edited
12 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r158485 r158494  
     12013-11-02  Alexey Proskuryakov  <ap@apple.com>
     2
     3        Implement remaining SHA variations for WebCrypto
     4        https://bugs.webkit.org/show_bug.cgi?id=123659
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * crypto/subtle/sha-224-expected.txt: Added.
     9        * crypto/subtle/sha-224.html: Added.
     10        * crypto/subtle/sha-256-expected.txt: Added.
     11        * crypto/subtle/sha-256.html: Added.
     12        * crypto/subtle/sha-384-expected.txt: Added.
     13        * crypto/subtle/sha-384.html: Added.
     14        * crypto/subtle/sha-512-expected.txt: Added.
     15        * crypto/subtle/sha-512.html: Added.
     16
    1172013-11-01  Alexey Proskuryakov  <ap@apple.com>
    218
  • trunk/Source/WebCore/ChangeLog

    r158492 r158494  
     12013-11-02  Alexey Proskuryakov  <ap@apple.com>
     2
     3        Implement remaining SHA variations for WebCrypto
     4        https://bugs.webkit.org/show_bug.cgi?id=123659
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Tests: crypto/subtle/sha-224.html
     9               crypto/subtle/sha-256.html
     10               crypto/subtle/sha-384.html
     11               crypto/subtle/sha-512.html
     12
     13        * WebCore.xcodeproj/project.pbxproj:
     14        * crypto/algorithms/CryptoAlgorithmSHA224.cpp: Added.
     15        (WebCore::CryptoAlgorithmSHA224::CryptoAlgorithmSHA224):
     16        (WebCore::CryptoAlgorithmSHA224::~CryptoAlgorithmSHA224):
     17        (WebCore::CryptoAlgorithmSHA224::create):
     18        (WebCore::CryptoAlgorithmSHA224::identifier):
     19        * crypto/algorithms/CryptoAlgorithmSHA224.h: Added.
     20        * crypto/algorithms/CryptoAlgorithmSHA256.cpp: Added.
     21        (WebCore::CryptoAlgorithmSHA256::CryptoAlgorithmSHA256):
     22        (WebCore::CryptoAlgorithmSHA256::~CryptoAlgorithmSHA256):
     23        (WebCore::CryptoAlgorithmSHA256::create):
     24        (WebCore::CryptoAlgorithmSHA256::identifier):
     25        * crypto/algorithms/CryptoAlgorithmSHA256.h: Added.
     26        * crypto/algorithms/CryptoAlgorithmSHA384.cpp: Added.
     27        (WebCore::CryptoAlgorithmSHA384::CryptoAlgorithmSHA384):
     28        (WebCore::CryptoAlgorithmSHA384::~CryptoAlgorithmSHA384):
     29        (WebCore::CryptoAlgorithmSHA384::create):
     30        (WebCore::CryptoAlgorithmSHA384::identifier):
     31        * crypto/algorithms/CryptoAlgorithmSHA384.h: Added.
     32        * crypto/algorithms/CryptoAlgorithmSHA512.cpp: Added.
     33        (WebCore::CryptoAlgorithmSHA512::CryptoAlgorithmSHA512):
     34        (WebCore::CryptoAlgorithmSHA512::~CryptoAlgorithmSHA512):
     35        (WebCore::CryptoAlgorithmSHA512::create):
     36        (WebCore::CryptoAlgorithmSHA512::identifier):
     37        * crypto/algorithms/CryptoAlgorithmSHA512.h: Added.
     38        * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
     39        (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
     40        * crypto/mac/CryptoAlgorithmSHA224Mac.cpp: Added.
     41        (WebCore::CryptoAlgorithmSHA224::digest):
     42        * crypto/mac/CryptoAlgorithmSHA256Mac.cpp: Added.
     43        (WebCore::CryptoAlgorithmSHA256::digest):
     44        * crypto/mac/CryptoAlgorithmSHA384Mac.cpp: Added.
     45        (WebCore::CryptoAlgorithmSHA384::digest):
     46        * crypto/mac/CryptoAlgorithmSHA512Mac.cpp: Added.
     47        (WebCore::CryptoAlgorithmSHA512::digest):
     48
    1492013-11-02  Patrick Gansterer  <paroga@webkit.org>
    250
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r158485 r158494  
    55805580                E18772F1126E2629003DD586 /* Language.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E18772F0126E2629003DD586 /* Language.cpp */; };
    55815581                E19727161820549E00592D51 /* CryptoKeyType.h in Headers */ = {isa = PBXBuildFile; fileRef = E19727151820549E00592D51 /* CryptoKeyType.h */; };
     5582                E19AC3E21824DC6900349426 /* CryptoAlgorithmSHA224Mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19AC3DE1824DC6900349426 /* CryptoAlgorithmSHA224Mac.cpp */; };
     5583                E19AC3E31824DC6900349426 /* CryptoAlgorithmSHA256Mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19AC3DF1824DC6900349426 /* CryptoAlgorithmSHA256Mac.cpp */; };
     5584                E19AC3E41824DC6900349426 /* CryptoAlgorithmSHA384Mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19AC3E01824DC6900349426 /* CryptoAlgorithmSHA384Mac.cpp */; };
     5585                E19AC3E51824DC6900349426 /* CryptoAlgorithmSHA512Mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19AC3E11824DC6900349426 /* CryptoAlgorithmSHA512Mac.cpp */; };
     5586                E19AC3EE1824DC7900349426 /* CryptoAlgorithmSHA224.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19AC3E61824DC7900349426 /* CryptoAlgorithmSHA224.cpp */; };
     5587                E19AC3EF1824DC7900349426 /* CryptoAlgorithmSHA224.h in Headers */ = {isa = PBXBuildFile; fileRef = E19AC3E71824DC7900349426 /* CryptoAlgorithmSHA224.h */; };
     5588                E19AC3F01824DC7900349426 /* CryptoAlgorithmSHA256.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19AC3E81824DC7900349426 /* CryptoAlgorithmSHA256.cpp */; };
     5589                E19AC3F11824DC7900349426 /* CryptoAlgorithmSHA256.h in Headers */ = {isa = PBXBuildFile; fileRef = E19AC3E91824DC7900349426 /* CryptoAlgorithmSHA256.h */; };
     5590                E19AC3F21824DC7900349426 /* CryptoAlgorithmSHA384.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19AC3EA1824DC7900349426 /* CryptoAlgorithmSHA384.cpp */; };
     5591                E19AC3F31824DC7900349426 /* CryptoAlgorithmSHA384.h in Headers */ = {isa = PBXBuildFile; fileRef = E19AC3EB1824DC7900349426 /* CryptoAlgorithmSHA384.h */; };
     5592                E19AC3F41824DC7900349426 /* CryptoAlgorithmSHA512.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19AC3EC1824DC7900349426 /* CryptoAlgorithmSHA512.cpp */; };
     5593                E19AC3F51824DC7900349426 /* CryptoAlgorithmSHA512.h in Headers */ = {isa = PBXBuildFile; fileRef = E19AC3ED1824DC7900349426 /* CryptoAlgorithmSHA512.h */; };
    55825594                E19DA29C18189ADD00088BC8 /* CryptoAlgorithmHmacKeyParams.h in Headers */ = {isa = PBXBuildFile; fileRef = E19DA29B18189ADD00088BC8 /* CryptoAlgorithmHmacKeyParams.h */; };
    55835595                E1A1470811102B1500EEC0F3 /* ContainerNodeAlgorithms.h in Headers */ = {isa = PBXBuildFile; fileRef = E1A1470711102B1500EEC0F3 /* ContainerNodeAlgorithms.h */; };
     
    1259512607                E18772F0126E2629003DD586 /* Language.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Language.cpp; sourceTree = "<group>"; };
    1259612608                E19727151820549E00592D51 /* CryptoKeyType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoKeyType.h; sourceTree = "<group>"; };
     12609                E19AC3DE1824DC6900349426 /* CryptoAlgorithmSHA224Mac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CryptoAlgorithmSHA224Mac.cpp; path = mac/CryptoAlgorithmSHA224Mac.cpp; sourceTree = "<group>"; };
     12610                E19AC3DF1824DC6900349426 /* CryptoAlgorithmSHA256Mac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CryptoAlgorithmSHA256Mac.cpp; path = mac/CryptoAlgorithmSHA256Mac.cpp; sourceTree = "<group>"; };
     12611                E19AC3E01824DC6900349426 /* CryptoAlgorithmSHA384Mac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CryptoAlgorithmSHA384Mac.cpp; path = mac/CryptoAlgorithmSHA384Mac.cpp; sourceTree = "<group>"; };
     12612                E19AC3E11824DC6900349426 /* CryptoAlgorithmSHA512Mac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CryptoAlgorithmSHA512Mac.cpp; path = mac/CryptoAlgorithmSHA512Mac.cpp; sourceTree = "<group>"; };
     12613                E19AC3E61824DC7900349426 /* CryptoAlgorithmSHA224.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmSHA224.cpp; sourceTree = "<group>"; };
     12614                E19AC3E71824DC7900349426 /* CryptoAlgorithmSHA224.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmSHA224.h; sourceTree = "<group>"; };
     12615                E19AC3E81824DC7900349426 /* CryptoAlgorithmSHA256.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmSHA256.cpp; sourceTree = "<group>"; };
     12616                E19AC3E91824DC7900349426 /* CryptoAlgorithmSHA256.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmSHA256.h; sourceTree = "<group>"; };
     12617                E19AC3EA1824DC7900349426 /* CryptoAlgorithmSHA384.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmSHA384.cpp; sourceTree = "<group>"; };
     12618                E19AC3EB1824DC7900349426 /* CryptoAlgorithmSHA384.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmSHA384.h; sourceTree = "<group>"; };
     12619                E19AC3EC1824DC7900349426 /* CryptoAlgorithmSHA512.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmSHA512.cpp; sourceTree = "<group>"; };
     12620                E19AC3ED1824DC7900349426 /* CryptoAlgorithmSHA512.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmSHA512.h; sourceTree = "<group>"; };
    1259712621                E19DA29B18189ADD00088BC8 /* CryptoAlgorithmHmacKeyParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CryptoAlgorithmHmacKeyParams.h; path = parameters/CryptoAlgorithmHmacKeyParams.h; sourceTree = "<group>"; };
    1259812622                E1A1470711102B1500EEC0F3 /* ContainerNodeAlgorithms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerNodeAlgorithms.h; sourceTree = "<group>"; };
     
    2013920163                                E1BB84AC1822CA7400525043 /* CryptoAlgorithmRegistryMac.cpp */,
    2014020164                                E125F82D1822CFFF00D84CD9 /* CryptoAlgorithmSHA1Mac.cpp */,
     20165                                E19AC3DE1824DC6900349426 /* CryptoAlgorithmSHA224Mac.cpp */,
     20166                                E19AC3DF1824DC6900349426 /* CryptoAlgorithmSHA256Mac.cpp */,
     20167                                E19AC3E01824DC6900349426 /* CryptoAlgorithmSHA384Mac.cpp */,
     20168                                E19AC3E11824DC6900349426 /* CryptoAlgorithmSHA512Mac.cpp */,
    2014120169                        );
    2014220170                        name = mac;
     
    2015220180                                E125F8291822CFEC00D84CD9 /* CryptoAlgorithmSHA1.cpp */,
    2015320181                                E125F82A1822CFEC00D84CD9 /* CryptoAlgorithmSHA1.h */,
     20182                                E19AC3E61824DC7900349426 /* CryptoAlgorithmSHA224.cpp */,
     20183                                E19AC3E71824DC7900349426 /* CryptoAlgorithmSHA224.h */,
     20184                                E19AC3E81824DC7900349426 /* CryptoAlgorithmSHA256.cpp */,
     20185                                E19AC3E91824DC7900349426 /* CryptoAlgorithmSHA256.h */,
     20186                                E19AC3EA1824DC7900349426 /* CryptoAlgorithmSHA384.cpp */,
     20187                                E19AC3EB1824DC7900349426 /* CryptoAlgorithmSHA384.h */,
     20188                                E19AC3EC1824DC7900349426 /* CryptoAlgorithmSHA512.cpp */,
     20189                                E19AC3ED1824DC7900349426 /* CryptoAlgorithmSHA512.h */,
    2015420190                        );
    2015520191                        path = algorithms;
     
    2169521731                                29A8122B0FBB9C1D00510293 /* AccessibilityTable.h in Headers */,
    2169621732                                29A812320FBB9C1D00510293 /* AccessibilityTableCell.h in Headers */,
     21733                                E19AC3F11824DC7900349426 /* CryptoAlgorithmSHA256.h in Headers */,
    2169721734                                29A812410FBB9C1D00510293 /* AccessibilityTableColumn.h in Headers */,
    2169821735                                29A8123F0FBB9C1D00510293 /* AccessibilityTableHeaderContainer.h in Headers */,
     
    2307623113                                52CCA9E315E3F62C0053C77F /* JSDOMNamedFlowCollection.h in Headers */,
    2307723114                                1ACE53E00A8D18810022947D /* JSDOMParser.h in Headers */,
     23115                                E19AC3F31824DC7900349426 /* CryptoAlgorithmSHA384.h in Headers */,
    2307823116                                FB91392A16AE4FC0001FE682 /* JSDOMPath.h in Headers */,
    2307923117                                A9D247FF0D757E6900FDF959 /* JSDOMPlugin.h in Headers */,
     
    2334523383                                8542A7990AE5C94400DF58DF /* JSSVGElementWrapperFactory.h in Headers */,
    2334623384                                B2FA3D690AB75A6F000E5AC4 /* JSSVGEllipseElement.h in Headers */,
     23385                                E19AC3EF1824DC7900349426 /* CryptoAlgorithmSHA224.h in Headers */,
    2334723386                                078E092B17D14D1C00420AA1 /* RTCStatsRequestImpl.h in Headers */,
    2334823387                                B266CD4E0C3AEC6500EB08D2 /* JSSVGException.h in Headers */,
     
    2470924748                                07C59B5717F4AC15000FBCBB /* VideoStreamTrack.h in Headers */,
    2471024749                                49C7B9C91042D32F0009D447 /* WebGLBuffer.h in Headers */,
     24750                                E19AC3F51824DC7900349426 /* CryptoAlgorithmSHA512.h in Headers */,
    2471124751                                7E66E23416D6EB6C00F7E7FF /* WebGLCompressedTextureATC.h in Headers */,
    2471224752                                7E66E23417E6EB6C00F7E7FF /* WebGLCompressedTexturePVRTC.h in Headers */,
     
    2539225432                                37C238221098C84200EF9F72 /* ComplexTextControllerCoreText.mm in Sources */,
    2539325433                                316FE1150E6E1DA700BF6088 /* CompositeAnimation.cpp in Sources */,
     25434                                E19AC3E31824DC6900349426 /* CryptoAlgorithmSHA256Mac.cpp in Sources */,
    2539425435                                93309DDC099E64920056E581 /* CompositeEditCommand.cpp in Sources */,
    2539525436                                79F2F5A11091939A000D87CB /* CompositionEvent.cpp in Sources */,
     
    2607526116                                93442CA00D2B336000338FF9 /* HTMLTableRowsCollection.cpp in Sources */,
    2607626117                                A871DB260A150BD600B12A68 /* HTMLTableSectionElement.cpp in Sources */,
     26118                                E19AC3F01824DC7900349426 /* CryptoAlgorithmSHA256.cpp in Sources */,
    2607726119                                511EF2CB17F0FD3500E4FA16 /* JSIDBVersionChangeEvent.cpp in Sources */,
    2607826120                                D66817FA166FE6D700FA07B4 /* HTMLTemplateElement.cpp in Sources */,
     
    2639026432                                938E65F709F0985D008A48EC /* JSHTMLElementWrapperFactory.cpp in Sources */,
    2639126433                                BC6D44EC0C07F2ED0072D2C9 /* JSHTMLEmbedElement.cpp in Sources */,
     26434                                E19AC3EE1824DC7900349426 /* CryptoAlgorithmSHA224.cpp in Sources */,
    2639226435                                BC6D44BE0C07EFB60072D2C9 /* JSHTMLEmbedElementCustom.cpp in Sources */,
    2639326436                                1AE2AA260A1CDAB400B42B25 /* JSHTMLFieldSetElement.cpp in Sources */,
     
    2647926522                                FD23A12513F5FA5900F67001 /* JSMediaElementAudioSourceNode.cpp in Sources */,
    2648026523                                E44614180CD6826900FADA75 /* JSMediaError.cpp in Sources */,
     26524                                E19AC3F41824DC7900349426 /* CryptoAlgorithmSHA512.cpp in Sources */,
    2648126525                                CDA98DA31601464100FEA3B1 /* JSMediaKeyError.cpp in Sources */,
    2648226526                                CDB859FA160D494900E5B07F /* JSMediaKeyEvent.cpp in Sources */,
     
    2694826992                                85031B490A44EFC700F992E0 /* MutationEvent.cpp in Sources */,
    2694926993                                C6F0900E14327B6100685849 /* MutationObserver.cpp in Sources */,
     26994                                E19AC3E51824DC6900349426 /* CryptoAlgorithmSHA512Mac.cpp in Sources */,
    2695026995                                D6E528A3149A926D00EFE1F3 /* MutationObserverInterestGroup.cpp in Sources */,
    2695126996                                D6E276AF14637455001D280A /* MutationObserverRegistration.cpp in Sources */,
     
    2731527360                                BCD0E0FA0E972C3500265DEA /* SecurityOrigin.cpp in Sources */,
    2731627361                                974D2DA4146A535D00D51F8B /* SecurityPolicy.cpp in Sources */,
     27362                                E19AC3E21824DC6900349426 /* CryptoAlgorithmSHA224Mac.cpp in Sources */,
    2731727363                                371F4FFD0D25E7F300ECE0D5 /* SegmentedFontData.cpp in Sources */,
    2731827364                                B2C3DA2E0D006C1D00EF6F26 /* SegmentedString.cpp in Sources */,
     
    2750727553                                B22279AD0D00BF220071B782 /* SVGDefsElement.cpp in Sources */,
    2750827554                                B22279B00D00BF220071B782 /* SVGDescElement.cpp in Sources */,
     27555                                E19AC3F21824DC7900349426 /* CryptoAlgorithmSHA384.cpp in Sources */,
    2750927556                                CDE3A85717F6020400C5BE20 /* AudioTrackPrivateAVFObjC.mm in Sources */,
    2751027557                                B22279B30D00BF220071B782 /* SVGDocument.cpp in Sources */,
     
    2788827935                                BC772C460C4EB2C60083285F /* XMLHttpRequest.cpp in Sources */,
    2788927936                                978D07CE145A10370096908D /* XMLHttpRequestException.cpp in Sources */,
     27937                                E19AC3E41824DC6900349426 /* CryptoAlgorithmSHA384Mac.cpp in Sources */,
    2789027938                                A136A00C1134DBD200CC8D50 /* XMLHttpRequestProgressEventThrottle.cpp in Sources */,
    2789127939                                BCDFD48F0E305290009D10AD /* XMLHttpRequestUpload.cpp in Sources */,
  • trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA224.cpp

    r158493 r158494  
    2525
    2626#include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     27#include "CryptoAlgorithmSHA224.h"
    2828
    2929#if ENABLE(SUBTLE_CRYPTO)
    3030
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
    34 
    3531namespace WebCore {
    3632
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
     33const char* const CryptoAlgorithmSHA224::s_name = "sha-224";
     34
     35CryptoAlgorithmSHA224::CryptoAlgorithmSHA224()
    3836{
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     37}
     38
     39CryptoAlgorithmSHA224::~CryptoAlgorithmSHA224()
     40{
     41}
     42
     43std::unique_ptr<CryptoAlgorithm> CryptoAlgorithmSHA224::create()
     44{
     45    return std::unique_ptr<CryptoAlgorithm>(new CryptoAlgorithmSHA224);
     46}
     47
     48CryptoAlgorithmIdentifier CryptoAlgorithmSHA224::identifier() const
     49{
     50    return s_identifier;
    4251}
    4352
  • trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA224.h

    r158493 r158494  
    2424 */
    2525
    26 #include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     26#ifndef CryptoAlgorithmSHA224_h
     27#define CryptoAlgorithmSHA224_h
     28
     29#include "CryptoAlgorithm.h"
    2830
    2931#if ENABLE(SUBTLE_CRYPTO)
    3032
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
    34 
    3533namespace WebCore {
    3634
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
    38 {
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
    42 }
     35class CryptoAlgorithmSHA224 FINAL : public CryptoAlgorithm {
     36public:
     37    static const char* const s_name;
     38    static const CryptoAlgorithmIdentifier s_identifier = CryptoAlgorithmIdentifier::SHA_224;
     39
     40    static std::unique_ptr<CryptoAlgorithm> create();
     41
     42    virtual CryptoAlgorithmIdentifier identifier() const OVERRIDE;
     43
     44    virtual void digest(const CryptoAlgorithmParameters&, const Vector<CryptoOperationData>&, std::unique_ptr<PromiseWrapper>, ExceptionCode&) OVERRIDE;
     45
     46private:
     47    CryptoAlgorithmSHA224();
     48    virtual ~CryptoAlgorithmSHA224();
     49};
    4350
    4451}
    4552
    4653#endif // ENABLE(SUBTLE_CRYPTO)
     54#endif // CryptoAlgorithmSHA224_h
  • trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA256.cpp

    r158493 r158494  
    2525
    2626#include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     27#include "CryptoAlgorithmSHA256.h"
    2828
    2929#if ENABLE(SUBTLE_CRYPTO)
    3030
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
    34 
    3531namespace WebCore {
    3632
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
     33const char* const CryptoAlgorithmSHA256::s_name = "sha-256";
     34
     35CryptoAlgorithmSHA256::CryptoAlgorithmSHA256()
    3836{
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     37}
     38
     39CryptoAlgorithmSHA256::~CryptoAlgorithmSHA256()
     40{
     41}
     42
     43std::unique_ptr<CryptoAlgorithm> CryptoAlgorithmSHA256::create()
     44{
     45    return std::unique_ptr<CryptoAlgorithm>(new CryptoAlgorithmSHA256);
     46}
     47
     48CryptoAlgorithmIdentifier CryptoAlgorithmSHA256::identifier() const
     49{
     50    return s_identifier;
    4251}
    4352
  • trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA256.h

    r158493 r158494  
    2424 */
    2525
    26 #include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     26#ifndef CryptoAlgorithmSHA256_h
     27#define CryptoAlgorithmSHA256_h
     28
     29#include "CryptoAlgorithm.h"
    2830
    2931#if ENABLE(SUBTLE_CRYPTO)
    3032
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
    34 
    3533namespace WebCore {
    3634
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
    38 {
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
    42 }
     35class CryptoAlgorithmSHA256 FINAL : public CryptoAlgorithm {
     36public:
     37    static const char* const s_name;
     38    static const CryptoAlgorithmIdentifier s_identifier = CryptoAlgorithmIdentifier::SHA_256;
     39
     40    static std::unique_ptr<CryptoAlgorithm> create();
     41
     42    virtual CryptoAlgorithmIdentifier identifier() const OVERRIDE;
     43
     44    virtual void digest(const CryptoAlgorithmParameters&, const Vector<CryptoOperationData>&, std::unique_ptr<PromiseWrapper>, ExceptionCode&) OVERRIDE;
     45
     46private:
     47    CryptoAlgorithmSHA256();
     48    virtual ~CryptoAlgorithmSHA256();
     49};
    4350
    4451}
    4552
    4653#endif // ENABLE(SUBTLE_CRYPTO)
     54#endif // CryptoAlgorithmSHA256_h
  • trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA384.cpp

    r158493 r158494  
    2525
    2626#include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     27#include "CryptoAlgorithmSHA384.h"
    2828
    2929#if ENABLE(SUBTLE_CRYPTO)
    3030
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
    34 
    3531namespace WebCore {
    3632
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
     33const char* const CryptoAlgorithmSHA384::s_name = "sha-384";
     34
     35CryptoAlgorithmSHA384::CryptoAlgorithmSHA384()
    3836{
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     37}
     38
     39CryptoAlgorithmSHA384::~CryptoAlgorithmSHA384()
     40{
     41}
     42
     43std::unique_ptr<CryptoAlgorithm> CryptoAlgorithmSHA384::create()
     44{
     45    return std::unique_ptr<CryptoAlgorithm>(new CryptoAlgorithmSHA384);
     46}
     47
     48CryptoAlgorithmIdentifier CryptoAlgorithmSHA384::identifier() const
     49{
     50    return s_identifier;
    4251}
    4352
  • trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA384.h

    r158493 r158494  
    2424 */
    2525
    26 #include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     26#ifndef CryptoAlgorithmSHA384_h
     27#define CryptoAlgorithmSHA384_h
     28
     29#include "CryptoAlgorithm.h"
    2830
    2931#if ENABLE(SUBTLE_CRYPTO)
    3032
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
    34 
    3533namespace WebCore {
    3634
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
    38 {
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
    42 }
     35class CryptoAlgorithmSHA384 FINAL : public CryptoAlgorithm {
     36public:
     37    static const char* const s_name;
     38    static const CryptoAlgorithmIdentifier s_identifier = CryptoAlgorithmIdentifier::SHA_384;
     39
     40    static std::unique_ptr<CryptoAlgorithm> create();
     41
     42    virtual CryptoAlgorithmIdentifier identifier() const OVERRIDE;
     43
     44    virtual void digest(const CryptoAlgorithmParameters&, const Vector<CryptoOperationData>&, std::unique_ptr<PromiseWrapper>, ExceptionCode&) OVERRIDE;
     45
     46private:
     47    CryptoAlgorithmSHA384();
     48    virtual ~CryptoAlgorithmSHA384();
     49};
    4350
    4451}
    4552
    4653#endif // ENABLE(SUBTLE_CRYPTO)
     54#endif // CryptoAlgorithmSHA384_h
  • trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA512.cpp

    r158493 r158494  
    2525
    2626#include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     27#include "CryptoAlgorithmSHA512.h"
    2828
    2929#if ENABLE(SUBTLE_CRYPTO)
    3030
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
    34 
    3531namespace WebCore {
    3632
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
     33const char* const CryptoAlgorithmSHA512::s_name = "sha-512";
     34
     35CryptoAlgorithmSHA512::CryptoAlgorithmSHA512()
    3836{
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     37}
     38
     39CryptoAlgorithmSHA512::~CryptoAlgorithmSHA512()
     40{
     41}
     42
     43std::unique_ptr<CryptoAlgorithm> CryptoAlgorithmSHA512::create()
     44{
     45    return std::unique_ptr<CryptoAlgorithm>(new CryptoAlgorithmSHA512);
     46}
     47
     48CryptoAlgorithmIdentifier CryptoAlgorithmSHA512::identifier() const
     49{
     50    return s_identifier;
    4251}
    4352
  • trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA512.h

    r158493 r158494  
    2424 */
    2525
    26 #include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     26#ifndef CryptoAlgorithmSHA512_h
     27#define CryptoAlgorithmSHA512_h
     28
     29#include "CryptoAlgorithm.h"
    2830
    2931#if ENABLE(SUBTLE_CRYPTO)
    3032
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
    34 
    3533namespace WebCore {
    3634
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
    38 {
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
    42 }
     35class CryptoAlgorithmSHA512 FINAL : public CryptoAlgorithm {
     36public:
     37    static const char* const s_name;
     38    static const CryptoAlgorithmIdentifier s_identifier = CryptoAlgorithmIdentifier::SHA_512;
     39
     40    static std::unique_ptr<CryptoAlgorithm> create();
     41
     42    virtual CryptoAlgorithmIdentifier identifier() const OVERRIDE;
     43
     44    virtual void digest(const CryptoAlgorithmParameters&, const Vector<CryptoOperationData>&, std::unique_ptr<PromiseWrapper>, ExceptionCode&) OVERRIDE;
     45
     46private:
     47    CryptoAlgorithmSHA512();
     48    virtual ~CryptoAlgorithmSHA512();
     49};
    4350
    4451}
    4552
    4653#endif // ENABLE(SUBTLE_CRYPTO)
     54#endif // CryptoAlgorithmSHA512_h
  • trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRegistryMac.cpp

    r158485 r158494  
    3232#include "CryptoAlgorithmHMAC.h"
    3333#include "CryptoAlgorithmSHA1.h"
     34#include "CryptoAlgorithmSHA224.h"
     35#include "CryptoAlgorithmSHA256.h"
     36#include "CryptoAlgorithmSHA384.h"
     37#include "CryptoAlgorithmSHA512.h"
    3438
    3539namespace WebCore {
     
    4044    registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    4145    registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     46    registerAlgorithm(CryptoAlgorithmSHA224::s_name, CryptoAlgorithmSHA224::s_identifier, CryptoAlgorithmSHA224::create);
     47    registerAlgorithm(CryptoAlgorithmSHA256::s_name, CryptoAlgorithmSHA256::s_identifier, CryptoAlgorithmSHA256::create);
     48    registerAlgorithm(CryptoAlgorithmSHA384::s_name, CryptoAlgorithmSHA384::s_identifier, CryptoAlgorithmSHA384::create);
     49    registerAlgorithm(CryptoAlgorithmSHA512::s_name, CryptoAlgorithmSHA512::s_identifier, CryptoAlgorithmSHA512::create);
    4250}
    4351
  • trunk/Source/WebCore/crypto/mac/CryptoAlgorithmSHA224Mac.cpp

    r158493 r158494  
    2525
    2626#include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     27#include "CryptoAlgorithmSHA224.h"
    2828
    2929#if ENABLE(SUBTLE_CRYPTO)
    3030
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
     31#include "JSDOMPromise.h"
     32#include <CommonCrypto/CommonCrypto.h>
    3433
    3534namespace WebCore {
    3635
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
     36void CryptoAlgorithmSHA224::digest(const CryptoAlgorithmParameters&, const Vector<CryptoOperationData>& data, std::unique_ptr<PromiseWrapper> promise, ExceptionCode&)
    3837{
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     38    Vector<unsigned char> result(CC_SHA224_DIGEST_LENGTH);
     39
     40    CC_SHA256_CTX context; // Same context struct is used for SHA224 and SHA256.
     41    CC_SHA224_Init(&context);
     42
     43    for (size_t i = 0, size = data.size(); i < size; ++i)
     44        CC_SHA224_Update(&context, data[i].first, data[i].second);
     45
     46    CC_SHA224_Final(result.data(), &context);
     47
     48    promise->fulfill(result);
    4249}
    4350
  • trunk/Source/WebCore/crypto/mac/CryptoAlgorithmSHA256Mac.cpp

    r158493 r158494  
    2525
    2626#include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     27#include "CryptoAlgorithmSHA256.h"
    2828
    2929#if ENABLE(SUBTLE_CRYPTO)
    3030
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
     31#include "JSDOMPromise.h"
     32#include <CommonCrypto/CommonCrypto.h>
    3433
    3534namespace WebCore {
    3635
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
     36void CryptoAlgorithmSHA256::digest(const CryptoAlgorithmParameters&, const Vector<CryptoOperationData>& data, std::unique_ptr<PromiseWrapper> promise, ExceptionCode&)
    3837{
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     38    Vector<unsigned char> result(CC_SHA256_DIGEST_LENGTH);
     39
     40    CC_SHA256_CTX context;
     41    CC_SHA256_Init(&context);
     42
     43    for (size_t i = 0, size = data.size(); i < size; ++i)
     44        CC_SHA256_Update(&context, data[i].first, data[i].second);
     45
     46    CC_SHA256_Final(result.data(), &context);
     47
     48    promise->fulfill(result);
    4249}
    4350
  • trunk/Source/WebCore/crypto/mac/CryptoAlgorithmSHA384Mac.cpp

    r158493 r158494  
    2525
    2626#include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     27#include "CryptoAlgorithmSHA384.h"
    2828
    2929#if ENABLE(SUBTLE_CRYPTO)
    3030
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
     31#include "JSDOMPromise.h"
     32#include <CommonCrypto/CommonCrypto.h>
    3433
    3534namespace WebCore {
    3635
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
     36void CryptoAlgorithmSHA384::digest(const CryptoAlgorithmParameters&, const Vector<CryptoOperationData>& data, std::unique_ptr<PromiseWrapper> promise, ExceptionCode&)
    3837{
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     38    Vector<unsigned char> result(CC_SHA384_DIGEST_LENGTH);
     39
     40    CC_SHA512_CTX context; // Same context struct is used for SHA384 and SHA512.
     41    CC_SHA384_Init(&context);
     42
     43    for (size_t i = 0, size = data.size(); i < size; ++i)
     44        CC_SHA384_Update(&context, data[i].first, data[i].second);
     45
     46    CC_SHA384_Final(result.data(), &context);
     47
     48    promise->fulfill(result);
    4249}
    4350
  • trunk/Source/WebCore/crypto/mac/CryptoAlgorithmSHA512Mac.cpp

    r158493 r158494  
    2525
    2626#include "config.h"
    27 #include "CryptoAlgorithmRegistry.h"
     27#include "CryptoAlgorithmSHA512.h"
    2828
    2929#if ENABLE(SUBTLE_CRYPTO)
    3030
    31 #include "CryptoAlgorithmAES_CBC.h"
    32 #include "CryptoAlgorithmHMAC.h"
    33 #include "CryptoAlgorithmSHA1.h"
     31#include "JSDOMPromise.h"
     32#include <CommonCrypto/CommonCrypto.h>
    3433
    3534namespace WebCore {
    3635
    37 void CryptoAlgorithmRegistry::platformRegisterAlgorithms()
     36void CryptoAlgorithmSHA512::digest(const CryptoAlgorithmParameters&, const Vector<CryptoOperationData>& data, std::unique_ptr<PromiseWrapper> promise, ExceptionCode&)
    3837{
    39     registerAlgorithm(CryptoAlgorithmAES_CBC::s_name, CryptoAlgorithmAES_CBC::s_identifier, CryptoAlgorithmAES_CBC::create);
    40     registerAlgorithm(CryptoAlgorithmHMAC::s_name, CryptoAlgorithmHMAC::s_identifier, CryptoAlgorithmHMAC::create);
    41     registerAlgorithm(CryptoAlgorithmSHA1::s_name, CryptoAlgorithmSHA1::s_identifier, CryptoAlgorithmSHA1::create);
     38    Vector<unsigned char> result(CC_SHA512_DIGEST_LENGTH);
     39
     40    CC_SHA512_CTX context;
     41    CC_SHA512_Init(&context);
     42
     43    for (size_t i = 0, size = data.size(); i < size; ++i)
     44        CC_SHA512_Update(&context, data[i].first, data[i].second);
     45
     46    CC_SHA512_Final(result.data(), &context);
     47
     48    promise->fulfill(result);
    4249}
    4350
Note: See TracChangeset for help on using the changeset viewer.