Privacy/Features/DOMCryptAPISpec/Latest: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 51: Line 51:
interface Crypto {
interface Crypto {
   readonly attribute CryptoPk pk;
   readonly attribute CryptoPk pk;
   readonly attribute CryptoSym sym;
   // readonly attribute CryptoSym sym; // TBD
};
};


[Constructor(in DOMString algorithm)]
[Constructor(in DOMString algorithm)]
interface CryptoHash {
interface CryptoHash {
   DOMString createHash(DOMString plainText);
   void append(ArrayBuffer data);
  ArrayBuffer finish();
};
};


[Constructor(in DOMString algorithm)]
[Constructor(in DOMString algorithm)]
interface CryptoHmac {
interface CryptoHmac {
   DOMString createHMAC(DOMString plainText, DOMString key);
   ArrayBuffer createHMAC(ArrayBuffer plainText, ArrayBuffer key);
   boolean verifyHMAC(DOMString plainText, DOMString key);
   boolean verifyHMAC(ArrayBuffer hmac, ArrayBuffer key);
};
 
interface PKCryptoPublicKey {
  readonly attribute DOMString pubKey;
  readonly attribute DOMString algorithm;
  readonly attribute integer created;
};
 
interface PKCryptoMessage {
  attribute DOMString cryptoMessage;
  attribute DOMString algorithm;  
};
};


[Callback=FunctionOnly, NoInterfaceObject] interface GenerateKeypairCallback {
[Callback=FunctionOnly, NoInterfaceObject] interface GenerateKeypairCallback {
   void onsuccess(DOMString pubKey);
   void onsuccess(ArayBuffer keyID, ArrayBuffer pubKey);
};
};


[Callback=FunctionOnly, NoInterfaceObject] interface GetPublicKeyCallback {
[Callback=FunctionOnly, NoInterfaceObject] interface GetPublicKeyCallback {
   void onsuccess(DOMString pubKey);
   void onsuccess(ArrayBuffer pubKey);
};
};


[Callback=FunctionOnly, NoInterfaceObject] interface PKEncryptCallback {
[Callback=FunctionOnly, NoInterfaceObject] interface PKEncryptCallback {
   void onsuccess(PKCryptoMessage message);
   void onsuccess(ArrayBuffer message);
};
};


[Callback=FunctionOnly, NoInterfaceObject] interface PKDecryptCallback {
[Callback=FunctionOnly, NoInterfaceObject] interface PKDecryptCallback {
   void onsuccess(DOMString plainText);
   void onsuccess(ArrayBuffer plainText);
};
};


[Callback=FunctionOnly, NoInterfaceObject] interface PKSignCallback {
[Callback=FunctionOnly, NoInterfaceObject] interface PKSignCallback {
   void onsuccess(DOMString signature);
   void onsuccess(ArrayBuffer signature);
};
};


Line 102: Line 92:
interface CryptoPk {
interface CryptoPk {


  attribute DOMString algorithm;
   void generateKeypair(DOMString algorithm, GenerateKeypairCallback callback, boolean signingKeypair);
 
   void generateKeypair(GenerateKeypairCallback callback);


   void getPublicKey(GetPublicKeyCallback callback);
   void getPublicKey(GetPublicKeyCallback callback);


   void encrypt(DOMString plainText, DOMString pubKey, PKEncryptCallback callback);
   void encrypt(ArrayBuffer plainText, ArrayBuffer keyID, PKEncryptCallback callback);
 
  void decrypt(PKCryptoMessage message, PKDecryptCallback callback);
 
  void sign(DOMString plainText, PKSignCallback callback);
 
  void verify(DOMString signature, DOMString pubKey, DOMString plainText, PKVerifyCallback callback);


};
  void decrypt(ArrayBuffer message, ArrayBuffer keyID, PKDecryptCallback callback);


// Use JWE as the crypto object?, or something like the following:
  void sign(ArrayBuffer keyID, ArrayBuffer plainText, PKSignCallback callback);
interface SymCipherObject {
  attribute DOMString cipherString;
  attribute DOMString algorithm;
  attribute DOMString symKeyID;
  // What is missing here?
};


[Callback=FunctionOnly, NoInterfaceObject] interface SymEncryptCallback {
   void verify(ArrayBuffer signature, ArrayBuffer pubKey, ArrayBuffer plainText, PKVerifyCallback callback);
   void onsuccess(SymCipherObject cipherObject);
};


[Callback=FunctionOnly, NoInterfaceObject] interface SymDecryptCallback {
  void onsuccess(DOMString plainText);
};
};


interface CryptoSym {
  attribute DOMString algorithm;
  void encrypt(DOMString plainText, DOMString symKeyID, SymEncryptCallback callback);
  void decrypt(DOMString cipherText, DOMString symKeyID, SymDecryptCallback callback);
};
</pre>
</pre>


564

edits

Navigation menu