那位大侠用过exim-4.70-1/src/pdkim/rsa.c

idoleagle 发布于 2013/06/28 08:43
阅读 154
收藏 0

那位大侠用过exim-4.70-1/src/pdkim/rsa.c,有没有使用文档?第一次弄这个,有些地方不太明白?

例如数字签名:int rsa_pkcs1_sign( rsa_context *ctx,
                    int mode,
                    int hash_id,
                    int hashlen,
                    unsigned char *hash,
                    unsigned char *sig );
rsa_context *ctx 这个参数怎么传?只要初始化参数D就可以了还是? 另外,  int (*f_rng)(void *);       /**!<  RNG function      */
    void *p_rng;                /**!<  RNG parameter     */
这两个是干什么用的?

typedef struct
{
    int ver;                    /**!<  always 0          */
    int len;                    /**!<  size(N) in chars  */

    mpi N;                      /**!<  public modulus    */
    mpi E;                      /**!<  public exponent   */

    mpi D;                      /**!<  private exponent  */
    mpi P;                      /**!<  1st prime factor  */
    mpi Q;                      /**!<  2nd prime factor  */
    mpi DP;                     /**!<  D % (P - 1)       */
    mpi DQ;                     /**!<  D % (Q - 1)       */
    mpi QP;                     /**!<  1 / (Q % P)       */

    mpi RN;                     /**!<  cached R^2 mod N  */
    mpi RP;                     /**!<  cached R^2 mod P  */
    mpi RQ;                     /**!<  cached R^2 mod Q  */

    int padding;                /**!<  1.5 or OAEP/PSS   */
    int hash_id;                /**!<  hash identifier   */
    int (*f_rng)(void *);       /**!<  RNG function      */
    void *p_rng;                /**!<  RNG parameter     */
}
rsa_context;  typedef struct
{
    int s;              /**!<  integer sign      */
    int n;              /**!<  total # of limbs  */
    t_int *p;           /**!<  pointer to limbs  */
}
mpi;

加载中
返回顶部
顶部