pkg ibe, func MarshalParams(Params) ([]byte, error)
pkg ibe, func MarshalPrivateKey(PrivateKey) ([]byte, error)
pkg ibe, func SetupBB1() (Master, error)
pkg ibe, func SetupBB2() (Master, error)
pkg ibe, func UnmarshalParams([]byte) (Params, error)
pkg ibe, func UnmarshalPrivateKey(Params, []byte) (PrivateKey, error)
pkg ibe, type Master interface { Extract, Params }
pkg ibe, type Master interface, Extract(string) (PrivateKey, error)
pkg ibe, type Master interface, Params() Params
pkg ibe, type Params interface { CiphertextOverhead, Encrypt }
pkg ibe, type Params interface, CiphertextOverhead() int
pkg ibe, type Params interface, Encrypt(string, []byte, []byte) error
pkg ibe, type PrivateKey interface { Decrypt, Params }
pkg ibe, type PrivateKey interface, Decrypt([]byte, []byte) error
pkg ibe, type PrivateKey interface, Params() Params
