Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5269)

Unified Diff: chrome/common/extensions/api/easy_unlock_private.idl

Issue 391513002: Add easyUnlockPrivate extension API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/api/easy_unlock_private.idl
diff --git a/chrome/common/extensions/api/easy_unlock_private.idl b/chrome/common/extensions/api/easy_unlock_private.idl
new file mode 100644
index 0000000000000000000000000000000000000000..31caa7c62db605ed9c513dc83ea0a27a7be179dd
--- /dev/null
+++ b/chrome/common/extensions/api/easy_unlock_private.idl
@@ -0,0 +1,125 @@
+// 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.
+
+// <code>chrome.easyUnlockPrivate</code> API that provides hooks to Chrome to
+// be used by Easy Unlock component app.
+[nodoc] namespace easyUnlockPrivate {
+ // Signature algorithms supported by the crypto library methods used by
+ // Easy Unlock.
+ enum SignatureType {
+ HMAC_SHA256,
+ ECDSA_P256_SHA256
+ };
+
+ // Encryption algorithms supported by the crypto library methods used by
+ // Easy Unlock.
+ enum EncryptionType {
+ AES_256_CBC
+ };
+
+ // Options that can be passed to |unwrapSecureMessage| method.
+ dictionary UnwrapSecureMessageOptions {
+ // The data associated with the message. For the message to be succesfully
+ // verified, the message should have been created with the same associated
+ // data.
+ ArrayBuffer? associatedData;
+
+ // The encryption algorithm that should be used to decrypt the message.
+ // Should not be set for a cleartext message.
+ EncryptionType? encryptType;
+
+ // The algorithm to be used to verify signature contained in the message.
+ // Defaults to |HMAC_SHA256|. |ECDSA_P256_SHA256| can currently be used
+ // only with cleartext messages.
+ SignatureType? signType;
+ };
+
+ dictionary CreateSecureMessageOptions {
+ // Data associated with the message. The data will not be sent with the
+ // message, but the message recepient will use the same data on its side
+ // to verify the message.
+ ArrayBuffer? associatedData;
+
+ // Metadata to be added to the message header.
+ ArrayBuffer? publicMetadata;
+
+ // Verification key id added to the message header. Should be set if the
+ // message is signed using |ECDSA_P256_SHA256|. It's used by the message
+ // recepient to determine which key should be used to verify the message
+ // signature.
+ ArrayBuffer? verificationKeyId;
+
+ // The encryption algorithm that should be used to encrypt the message.
+ // Should not be set for a cleartext message.
+ EncryptionType? encryptType;
+
+ // The algorithm to be used to sign the message.
+ // Defaults to |HMAC_SHA256|. |ECDSA_P256_SHA256| can currently be used
+ // only with cleartext messages.
+ SignatureType? signType;
+ };
+
+ // Callback for crypto methods that return a single array buffer.
+ callback DataCallback = void(optional ArrayBuffer data);
+
+ // Callback for method that generates an encryption key pair.
+ callback KeyPairCallback = void(optional ArrayBuffer public_key,
+ optional ArrayBuffer private_key);
+
+ interface Functions {
+ // Generates a ECDSA key pair for P256 curve.
+ // Public key will be in format recognized by secure wire transport protocol
+ // used by Easy Unlock app. Otherwise, the exact format for both key should
+ // should be considered obfuscated to the app. The app should not use them
+ // directly, but through this API.
+ // |callback|: Callback with the generated keys. On failure, none of the
+ // keys will be set.
+ static void generateEcP256KeyPair(KeyPairCallback callback);
+
+ // Given a private key and a public ECDSA key from different asymetric key
+ // pairs, it generates a symetric encryption key using EC Diffie-Hellman
+ // scheme.
+ // |privateKey|: A private key generated by the app using
+ // |generateEcP256KeyPair|.
+ // |publicKey|: A public key that should be in the same format as the
+ // public key generated by |generateEcP256KeyPair|. Generally not the
+ // one paired with |private_key|.
+ // |callback|: Function returning the generated secret symetric key.
+ // On failure, the returned value will not be set.
+ static void performECDHKeyAgreement(ArrayBuffer privateKey,
+ ArrayBuffer publicKey,
+ DataCallback callback);
+
+ // Creates a secure, signed message in format used by Easy Unlock app to
+ // establish secure communication channel over unsecure connection.
+ // |payload|: The payload the create message should carry.
+ // |key|: The key used to sign the message content. If encryption algorithm
+ // is set in |options| the same key will be used to encrypt the message.
+ // |options|: Additional (optional) parameters used to create the message.
+ // |callback|: Function returning the created message bytes. On failure,
+ // the returned value will not be set.
+ static void createSecureMessage(
+ ArrayBuffer payload,
+ ArrayBuffer key,
+ CreateSecureMessageOptions options,
+ DataCallback callback);
+
+ // Authenticates and, if needed, decrypts a secure message. The message is
+ // in the same format as the one created by |createSecureMessage|.
+ // |secureMessage|: The message to be unwrapped.
+ // |key|: Key to be used to authenticate the message sender. If encryption
+ // algorithm is set in |options|, the same key will be used to decrypt
+ // the message.
+ // |options|: Additional (optional) parameters used to unwrap the message.
+ // |callback|: Function returning an array buffer containing cleartext
+ // message header and body. They are returned in a single buffer in
+ // format used inside the message. If the massage authentication or
+ // decryption fails, the returned value will not be set.
+ static void unwrapSecureMessage(
+ ArrayBuffer secureMessage,
+ ArrayBuffer key,
+ UnwrapSecureMessageOptions options,
+ DataCallback callback);
+ };
+};
« no previous file with comments | « chrome/common/extensions/api/api.gyp ('k') | chrome/common/extensions/permissions/chrome_api_permissions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698