参考: openssl之 : crypto/rsa/rsa_pk1.c
对于 RSA_PKCS1_PADDING 来讲(参看: ./crypto/rsa/rsa_eay.c ):
私钥加密时,使用的是: RSA_padding_add_PKCS1_type_1(…) pad的是定值 0xff
公钥加密时,使用的是: RSA_padding_add_PKCS1_type_2(…) pad的是随机的非零值 (这也是为什么公钥加密每次结果不同,而私钥加密每次结果相同的原因;对于私钥加密,多半用于签名,不需要随机,或者说,相同的数据每次签名结果都相同是很好的)
Optimal Asymmetric Encryption Padding (OAEP)
其他padding:
参考资料:
http://www.douban.com/note/338531480/
http://www.tuicool.com/articles/aMfIba
PSS: (具体实现参看 : pss.go)
Probabilistic Signature Scheme, a secure way of creating signatures with RSA (see also: PKCS1#Schemes)
MGF(pss 的时候需要):
Mask Generation Function, a function generating an arbitrary number of bits for a given input. (for example MGF1 from PKCS1)