extending bandwidth tracker api to support notifications
[oweals/gnunet.git] / src / include / gnunet_crypto_lib.h
index a8e9d6027f3c8a3e1b76c4ffe53ba59cb720ce57..d9c5e49e1e5bc31f1aca0ef7f8cba6c5a9ec745d 100644 (file)
@@ -365,18 +365,6 @@ struct GNUNET_CRYPTO_PaillierPrivateKey
 };
 
 
-/**
- * Paillier plaintext.
- */
-struct GNUNET_CRYPTO_PaillierPlaintext
-{
-  /**
-   * The bits of the plaintext.
-   */
-  unsigned char bits[GNUNET_CRYPTO_PAILLIER_BITS / 8];
-};
-
-
 /**
  * Paillier ciphertext.
  */
@@ -385,7 +373,7 @@ struct GNUNET_CRYPTO_PaillierCiphertext
   /**
    * guaranteed minimum number of homomorphic operations with this ciphertext
    */
-  uint32_t remaining_ops GNUNET_PACKED;
+  int32_t remaining_ops GNUNET_PACKED;
   
   /**
    * The bits of the ciphertext.
@@ -1372,17 +1360,28 @@ GNUNET_CRYPTO_paillier_decrypt (const struct GNUNET_CRYPTO_PaillierPrivateKey *p
  * Note that this operation can only be done a finite number of times
  * before an overflow occurs.
  *
- * @param x1 Paillier cipher text.
- * @param x2 Paillier cipher text.
+ * @param public_key Public key to use for encryption.
+ * @param c1 Paillier cipher text.
+ * @param c2 Paillier cipher text.
  * @param[out] result Result of the homomorphic operation.
  * @return #GNUNET_OK if the result could be computed,
  *         #GNUNET_SYSERR if no more homomorphic operations are remaining.
  */
 int
-GNUNET_CRYPTO_paillier_hom_add (const struct GNUNET_CRYPTO_PaillierCiphertext *x1,
-                                const struct GNUNET_CRYPTO_PaillierCiphertext *x2,
-                                const struct GNUNET_CRYPTO_PaillierCiphertext *result);
+GNUNET_CRYPTO_paillier_hom_add (const struct GNUNET_CRYPTO_PaillierPublicKey *public_key,
+                                const struct GNUNET_CRYPTO_PaillierCiphertext *c1,
+                                const struct GNUNET_CRYPTO_PaillierCiphertext *c2,
+                                struct GNUNET_CRYPTO_PaillierCiphertext *result);
+
 
+/**
+ * Get the number of remaining supported homomorphic operations. 
+ *
+ * @param c Paillier cipher text.
+ * @return the number of remaining homomorphic operations
+ */
+int
+GNUNET_CRYPTO_paillier_hom_get_remaining (const struct GNUNET_CRYPTO_PaillierCiphertext *c);
 
 #if 0                           /* keep Emacsens' auto-indent happy */
 {