pkg ibe, func MarshalParams(Params) ([]byte, error)
pkg ibe, func MarshalPrivateKey(PrivateKey) ([]byte, error)
pkg ibe, func SetupBB1() (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
