51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
|
/**
|
||
|
* @file tls_bfibe.h
|
||
|
* @author Mike Scott
|
||
|
* @brief Boneh and Franklin IBE
|
||
|
*
|
||
|
*/
|
||
|
//
|
||
|
// Pairing-based B&F IBE 128-bit API Functions
|
||
|
// Uses MIRACL
|
||
|
//
|
||
|
#ifndef BFIBE_BLS381_H
|
||
|
#define BFIBE_BLS381_H
|
||
|
|
||
|
#include "pair_BLS12381.h"
|
||
|
|
||
|
using namespace core;
|
||
|
|
||
|
/* Field size is assumed to be greater than or equal to group size */
|
||
|
|
||
|
#if CHUNK == 32
|
||
|
#define PGS_BLS12381 MODBYTES_B384_29 /**< BF Group Size */
|
||
|
#define PFS_BLS12381 MODBYTES_B384_29 /**< BF Field Size */
|
||
|
#else
|
||
|
#define PGS_BLS12381 MODBYTES_B384_58 /**< BF Group Size */
|
||
|
#define PFS_BLS12381 MODBYTES_B384_58 /**< BF Field Size */
|
||
|
#endif
|
||
|
|
||
|
/* IBE primitives */
|
||
|
|
||
|
/** @brief Create key SSK encapsulated in ciphertext CT to be sent to ID
|
||
|
*
|
||
|
@param ID the entity to receive encapsulated key
|
||
|
@param R32 32 random bytes
|
||
|
@param SSK is the encapsulated key
|
||
|
@param CT is the ciphertext
|
||
|
@return true if OK
|
||
|
*/
|
||
|
bool BFIBE_CCA_ENCRYPT(char *ID,octet *R32,octet *SSK,octet *CT);
|
||
|
|
||
|
/** @brief Create key SSK encapsulated in ciphertext CT to be sent to ID
|
||
|
*
|
||
|
@param SK the secret key of ID
|
||
|
@param CT is the ciphertext
|
||
|
@param SSK is the decapsulated key
|
||
|
@return true if OK
|
||
|
*/
|
||
|
bool BFIBE_CCA_DECRYPT(octet *SK,octet *CT,octet *SSK);
|
||
|
|
||
|
#endif
|
||
|
|