C++中如何例用PHP的RSA公、私钥加解密?
项目中需要和PHP做数据交互接口,对方给了我PHP产生的PEM私钥和公钥文件,我如何使用这个公钥对数据进行RSA加密,以及如何用私钥对数据进行签名?我使用的是标准的RAS加密算法,其中数据结构定义如下:
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 */
}rsa_context;
最关键的是,如何将PEM中的信息填充到这个结构中?
typedef struct
{
int s; /*!< integer sign */
int n; /*!< total # of limbs */
t_int *p; /*!< pointer to limbs */
}mpi;