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

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

Issue 1232553003: Add new certificateProvider extension API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 5 years, 3 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/certificate_provider.idl
diff --git a/chrome/common/extensions/api/certificate_provider.idl b/chrome/common/extensions/api/certificate_provider.idl
index 631026e2206c85c10c13ba1e8de7dc3874246f1a..f99f60c1abec6329fa4465094220f3e9329c57d7 100644
--- a/chrome/common/extensions/api/certificate_provider.idl
+++ b/chrome/common/extensions/api/certificate_provider.idl
@@ -14,7 +14,7 @@ namespace certificateProvider {
};
dictionary CertificateInfo {
- // Must be the DER encoding of a X.509 client certificate. Currently, only
+ // Must be the DER encoding of a X.509 certificate. Currently, only
// certificates of RSA keys are supported.
ArrayBuffer certificate;
@@ -31,44 +31,43 @@ namespace certificateProvider {
// Refers to the hash algorithm that was used to create |digest|.
Hash hash;
- // The DER encoding of a X.509 client certificate. The extension must sign
- // |digest| using the associated private key.
+ // The DER encoding of a X.509 certificate. The extension must sign |digest|
+ // using the associated private key.
ArrayBuffer certificate;
};
- // Either |error| or |signature| and not both must be set.
- dictionary SignatureDetails {
- // If the signature of the digest could not be calculated, this field must
- // be set.
- DOMString? error;
-
- // If no error occurred, this field must be set to the signature of the
- // digest using the private the of the requested client certificate.
- // For an RSA key, the signature must be a PKCS#1 signature. The extension
- // is responsible for prepending the DigestInfo prefix and adding PKCS#1
- // padding. If an MD5_SHA1 hash must be signed, the extension must not
- // prepend a DigestInfo prefix but only add PKCS#1 padding.
- ArrayBuffer? signature;
- };
-
callback DoneCallback = void ();
- callback SignCallback = void(SignatureDetails reply, DoneCallback callback);
+ callback ResultCallback = void (ArrayBuffer[] rejectedCertificates);
bartfab (slow) 2015/09/03 17:30:53 Nit: Document who will call these two callbacks an
pneubeck (no reviews) 2015/09/07 17:21:33 Done.
+
+ // If no error occurred, this function must be called with the signature of
+ // the digest using the private of the requested certificate.
bartfab (slow) 2015/09/03 17:30:53 Nit: s/private/private key/
pneubeck (no reviews) 2015/09/07 17:21:33 Done.
+ // For an RSA key, the signature must be a PKCS#1 signature. The extension
+ // is responsible for prepending the DigestInfo prefix and adding PKCS#1
+ // padding. If an MD5_SHA1 hash must be signed, the extension must not
+ // prepend a DigestInfo prefix but only add PKCS#1 padding.
+ // If an error occurred, this callback should be called without signature.
+ callback SignCallback =
+ void(optional ArrayBuffer signature, DoneCallback callback);
bartfab (slow) 2015/09/03 17:30:54 Nit 1: Document |callback|. When will it be called
pneubeck (no reviews) 2015/09/07 17:21:33 Nit 1: Removed. Nit 2: Done.
// Notifies Chrome that this extension is capable of responding to signing
// requests for the certificates listed in |certificates|. The list must
// only contain certificates for which the extension can sign data
// using the associated private key.
+ // If |certificates| contains invalid certificates, these will be ignored and
+ // be passed to |callback|. All valid certificates are still registered for
+ // the extension.
bartfab (slow) 2015/09/03 17:30:54 Will |callback| also be invoked if there are no in
pneubeck (no reviews) 2015/09/07 17:21:33 Done.
callback CertificatesCallback =
- void(CertificateInfo[] certificates, DoneCallback callback);
+ void(CertificateInfo[] certificates, ResultCallback callback);
interface Events {
// This event fires every time the browser requests the current list of
// certificates provided by this extension. The extension must call
// |callback| exactly once with the current list of certificates.
- static void onClientCertificatesRequested(CertificatesCallback callback);
+ static void onCertificatesRequested(CertificatesCallback callback);
// This event fires every time the browser needs to sign a message using a
- // certificate provided by this extension using |publishClientCertificates|.
+ // certificate provided by this extension in reply to an
+ // |onCertificatesRequested| event.
// The extension must sign the data in |request| using the appropriate
// algorithm and private key and return it by calling |callback|. |callback|
// must be called exactly once.

Powered by Google App Engine
This is Rietveld 408576698