18
paypal.go
18
paypal.go
@@ -1,15 +1,15 @@
|
|||||||
package Ewp
|
package Ewp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/x509"
|
|
||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"encoding/pem"
|
"crypto/x509"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
"encoding/pem"
|
||||||
"errors"
|
"errors"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/DeineAgenturUG/pkcs7"
|
"github.com/DeineAgenturUG/pkcs7"
|
||||||
)
|
)
|
||||||
@@ -92,7 +92,7 @@ type Ewp struct {
|
|||||||
|
|
||||||
func NewPaypalEwp(options EwpOptions) *Ewp {
|
func NewPaypalEwp(options EwpOptions) *Ewp {
|
||||||
var ewp = &Ewp{}
|
var ewp = &Ewp{}
|
||||||
ewp.LoadKeyPair(options)
|
ewp.loadKeyPair(options)
|
||||||
|
|
||||||
return ewp
|
return ewp
|
||||||
}
|
}
|
||||||
@@ -101,7 +101,7 @@ func (pe *Ewp) GetError() error {
|
|||||||
return pe.error
|
return pe.error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pe *Ewp) LoadKeyPair(options EwpOptions) {
|
func (pe *Ewp) loadKeyPair(options EwpOptions) {
|
||||||
pe.certificateID = &options.CertificateID
|
pe.certificateID = &options.CertificateID
|
||||||
|
|
||||||
if options.PaypalCertificateFile != "" {
|
if options.PaypalCertificateFile != "" {
|
||||||
@@ -144,14 +144,14 @@ func (pe *Ewp) LoadKeyPair(options EwpOptions) {
|
|||||||
keyPasswd = []byte(options.PrivateKeyPassphrase)
|
keyPasswd = []byte(options.PrivateKeyPassphrase)
|
||||||
}
|
}
|
||||||
|
|
||||||
pe.privateKey, pe.error = ParseRsaPrivateKeyFromPemStr(keyFilePEM, &keyPasswd)
|
pe.privateKey, pe.error = parseRsaPrivateKeyFromPemStr(keyFilePEM, &keyPasswd)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pe *Ewp) Generate(data *CryptData) string {
|
func (pe *Ewp) Generate(data *CryptData) string {
|
||||||
var encData []string
|
var encData []string
|
||||||
var output []byte
|
var output []byte
|
||||||
|
|
||||||
encData = append(encData, "cert_id=" + *pe.certificateID)
|
encData = append(encData, "cert_id="+*pe.certificateID)
|
||||||
|
|
||||||
rt := reflect.TypeOf(data)
|
rt := reflect.TypeOf(data)
|
||||||
// Check if it's a pointer
|
// Check if it's a pointer
|
||||||
@@ -198,7 +198,7 @@ func (pe *Ewp) Generate(data *CryptData) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if s == "" {
|
if s == "" {
|
||||||
s = tagVals["DEFAULT"];
|
s = tagVals["DEFAULT"]
|
||||||
}
|
}
|
||||||
|
|
||||||
encData = append(encData, tagVals["NAME"]+"="+s)
|
encData = append(encData, tagVals["NAME"]+"="+s)
|
||||||
@@ -241,7 +241,7 @@ func (pe *Ewp) Generate(data *CryptData) string {
|
|||||||
return "-----BEGIN PKCS7-----\n" + chunkSplit(base64.StdEncoding.EncodeToString(output), 64, "\n") + "-----END PKCS7-----"
|
return "-----BEGIN PKCS7-----\n" + chunkSplit(base64.StdEncoding.EncodeToString(output), 64, "\n") + "-----END PKCS7-----"
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseRsaPrivateKeyFromPemStr(privatePEM []byte, passphrase *[]byte) (*rsa.PrivateKey, error) {
|
func parseRsaPrivateKeyFromPemStr(privatePEM []byte, passphrase *[]byte) (*rsa.PrivateKey, error) {
|
||||||
block, _ := pem.Decode(privatePEM)
|
block, _ := pem.Decode(privatePEM)
|
||||||
if block == nil {
|
if block == nil {
|
||||||
return nil, errors.New("failed to parse PEM block containing the key")
|
return nil, errors.New("failed to parse PEM block containing the key")
|
||||||
|
|||||||
Reference in New Issue
Block a user