MastersThesis/TIIGER_TLS/PQ_TIIGER_TLS/include/tls_bfibe.h

51 lines
1.2 KiB
C
Raw Normal View History

2024-04-15 09:53:30 +00:00
/**
* @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