Newer versions of libssh2 use SHA256 fingerprints
(cherry picked from commit 7497529f70
)
Co-authored-by: Hans Duedal <hans.duedal@gmail.com>
This commit is contained in:
parent
4f57b9bff6
commit
46766a72f0
18
remote.go
18
remote.go
|
@ -172,17 +172,18 @@ type Certificate struct {
|
||||||
type HostkeyKind uint
|
type HostkeyKind uint
|
||||||
|
|
||||||
const (
|
const (
|
||||||
HostkeyMD5 HostkeyKind = C.GIT_CERT_SSH_MD5
|
HostkeyMD5 HostkeyKind = C.GIT_CERT_SSH_MD5
|
||||||
HostkeySHA1 HostkeyKind = C.GIT_CERT_SSH_SHA1
|
HostkeySHA1 HostkeyKind = C.GIT_CERT_SSH_SHA1
|
||||||
|
HostkeySHA256 HostkeyKind = C.GIT_CERT_SSH_SHA256
|
||||||
)
|
)
|
||||||
|
|
||||||
// Server host key information. If Kind is HostkeyMD5 the MD5 field
|
// Server host key information. A bitmask containing the available fields.
|
||||||
// will be filled. If Kind is HostkeySHA1, then HashSHA1 will be
|
// Check for combinations of: HostkeyMD5, HostkeySHA1, HostkeySHA256.
|
||||||
// filled.
|
|
||||||
type HostkeyCertificate struct {
|
type HostkeyCertificate struct {
|
||||||
Kind HostkeyKind
|
Kind HostkeyKind
|
||||||
HashMD5 [16]byte
|
HashMD5 [16]byte
|
||||||
HashSHA1 [20]byte
|
HashSHA1 [20]byte
|
||||||
|
HashSHA256 [32]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type PushOptions struct {
|
type PushOptions struct {
|
||||||
|
@ -318,6 +319,7 @@ func certificateCheckCallback(_cert *C.git_cert, _valid C.int, _host *C.char, da
|
||||||
cert.Hostkey.Kind = HostkeyKind(ccert._type)
|
cert.Hostkey.Kind = HostkeyKind(ccert._type)
|
||||||
C.memcpy(unsafe.Pointer(&cert.Hostkey.HashMD5[0]), unsafe.Pointer(&ccert.hash_md5[0]), C.size_t(len(cert.Hostkey.HashMD5)))
|
C.memcpy(unsafe.Pointer(&cert.Hostkey.HashMD5[0]), unsafe.Pointer(&ccert.hash_md5[0]), C.size_t(len(cert.Hostkey.HashMD5)))
|
||||||
C.memcpy(unsafe.Pointer(&cert.Hostkey.HashSHA1[0]), unsafe.Pointer(&ccert.hash_sha1[0]), C.size_t(len(cert.Hostkey.HashSHA1)))
|
C.memcpy(unsafe.Pointer(&cert.Hostkey.HashSHA1[0]), unsafe.Pointer(&ccert.hash_sha1[0]), C.size_t(len(cert.Hostkey.HashSHA1)))
|
||||||
|
C.memcpy(unsafe.Pointer(&cert.Hostkey.HashSHA256[0]), unsafe.Pointer(&ccert.hash_sha256[0]), C.size_t(len(cert.Hostkey.HashSHA256)))
|
||||||
} else {
|
} else {
|
||||||
cstr := C.CString("Unsupported certificate type")
|
cstr := C.CString("Unsupported certificate type")
|
||||||
C.giterr_set_str(C.GITERR_NET, cstr)
|
C.giterr_set_str(C.GITERR_NET, cstr)
|
||||||
|
|
Loading…
Reference in New Issue