1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Internal API for to implement the platformKeys and enterprise.platformKeys
7 [ implemented_in
= "chrome/browser/extensions/api/platform_keys/platform_keys_api.h" ]
8 namespace platformKeysInternal
{
9 // Invoked by <code>sign</code>.
10 // |signature| The signature, a octet string.
11 callback SignCallback
= void(ArrayBuffer signature
);
14 // Internal version of platformKeys.subtleCrypto.sign and
15 // enterprise.platformKeys.Token.subtleCrypto.sign.
16 // |tokenId| The id of a Token returned by |getTokens|.
17 // |publicKey| The Subject Public Key Info of a key previously generated by
18 // |generateKey| in DER encoding.
19 // |hashAlgorithmName| The recognized algorithm name as specified by
20 // WebCrypto of the hash algorithm that will be used to digest |data|
21 // before signing. Currently supported are: SHA-{1,256,384,512}.
22 // TODO(pneubeck): use an enum once supported:
23 // http://www.crbug.com/385539 .
24 // |data| The data to sign.
25 // |callback| Called back with the signature of |data|.
26 // TODO: Instead of ArrayBuffer should be (ArrayBuffer or ArrayBufferView),
27 // or at least (ArrayBuffer or Uint8Array).
28 static
void sign
(DOMString tokenId
,
29 ArrayBuffer publicKey
,
30 DOMString hashAlgorithmName
,
32 SignCallback
callback);