diff options
| author | Mirko Nosenzo <[email protected]> | 2016-10-08 11:33:56 +0200 |
|---|---|---|
| committer | Mirko Nosenzo <[email protected]> | 2016-10-08 11:33:56 +0200 |
| commit | 4567e4f7fa621df30e84ee643a27998776919b26 (patch) | |
| tree | 203c24d93683a2bda5bab19c578a2c108159337e /credentials.go | |
| parent | 717a47f7547811622fb1c08c28262a8c63af96fe (diff) | |
| parent | 22091886372e73de5d66168e8665775676ec13c5 (diff) | |
Merge remote-tracking branch 'upstream/v24' into remote-refinements
Diffstat (limited to 'credentials.go')
| -rw-r--r-- | credentials.go | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/credentials.go b/credentials.go index bb0ec41..4e42b6e 100644 --- a/credentials.go +++ b/credentials.go @@ -44,13 +44,15 @@ func NewCredUserpassPlaintext(username string, password string) (int, Cred) { return int(ret), cred } -func NewCredSshKey(username string, publickey string, privatekey string, passphrase string) (int, Cred) { +// NewCredSshKey creates new ssh credentials reading the public and private keys +// from the file system. +func NewCredSshKey(username string, publicKeyPath string, privateKeyPath string, passphrase string) (int, Cred) { cred := Cred{} cusername := C.CString(username) defer C.free(unsafe.Pointer(cusername)) - cpublickey := C.CString(publickey) + cpublickey := C.CString(publicKeyPath) defer C.free(unsafe.Pointer(cpublickey)) - cprivatekey := C.CString(privatekey) + cprivatekey := C.CString(privateKeyPath) defer C.free(unsafe.Pointer(cprivatekey)) cpassphrase := C.CString(passphrase) defer C.free(unsafe.Pointer(cpassphrase)) @@ -58,6 +60,22 @@ func NewCredSshKey(username string, publickey string, privatekey string, passphr return int(ret), cred } +// NewCredSshKeyFromMemory creates new ssh credentials using the publicKey and privateKey +// arguments as the values for the public and private keys. +func NewCredSshKeyFromMemory(username string, publicKey string, privateKey string, passphrase string) (int, Cred) { + cred := Cred{} + cusername := C.CString(username) + defer C.free(unsafe.Pointer(cusername)) + cpublickey := C.CString(publicKey) + defer C.free(unsafe.Pointer(cpublickey)) + cprivatekey := C.CString(privateKey) + defer C.free(unsafe.Pointer(cprivatekey)) + cpassphrase := C.CString(passphrase) + defer C.free(unsafe.Pointer(cpassphrase)) + ret := C.git_cred_ssh_key_memory_new(&cred.ptr, cusername, cpublickey, cprivatekey, cpassphrase) + return int(ret), cred +} + func NewCredSshKeyFromAgent(username string) (int, Cred) { cred := Cred{} cusername := C.CString(username) |
