基于配对的加密库初始化element_t对象

时间:2013-07-15 22:06:11

标签: c++

我正在使用PBC库(http://crypto.stanford.edu/pbc/manual/)迈出第一步,我有一个非常基本的问题。

我有一个载体

std::vector<element_t> h;

我正在尝试用element_t对象填充它,这是这个库中几乎任何东西的基本构建块。 我在循环中执行以下操作

element_t z[size];
// Pick random z_i and initialize h = g^z_i
for(int i = 0; i<size; i++)
{   
    element_init_Zr(z[i], pairing);
    element_random(z[i]);
    element_printf("created random z[%i] = %B\n", i, z[i]);

    element_t tmp;
    element_init_G1(tmp, pairing);

    element_pow_zn(tmp, g, z[i]);
    element_printf("tmp is %B\n", tmp);
    h.push_back(tmp);
}   

这种尝试导致了一个非常长的错误信息,我真的不明白,但我认为这意味着像element_t实际上并不是element_t所以不要用那个填充向量......

如果我将向量更改为一个带有element_t *的向量,那么它会编译,但最后所有指针由于某种原因指向同一个元素(最后一个被推入向量)。

当我尝试像element_t tmp = new element_t();然后我得到

error: array must be initialized with a brace-enclosed initializer

我真的不明白我做错了什么(我对c ++也很新)所以我很感激任何有用的建议。 如何正确初始化带有element_t对象的向量?

0 个答案:

没有答案