code: func (h Osxkeychain) Get(serverURL string) (string, string, error) {
  	s, err := splitServer(serverURL)
  	if err != nil {
  		return "", "", err
  	}
  	defer freeServer(s)
  
  	var usernameLen C.uint
  	var username *C.char
  	var secretLen C.uint
  	var secret *C.char
  	defer C.free(unsafe.Pointer(username))
  	defer C.free(unsafe.Pointer(secret))
  
  	errMsg := C.keychain_get(s, &usernameLen, &username, &secretLen, &secret)
  	if errMsg != nil {
  		defer C.free(unsafe.Pointer(errMsg))
  		goMsg := C.GoString(errMsg)
  		if goMsg == errCredentialsNotFound {
  			return "", "", credentials.NewErrCredentialsNotFound()
  		}
  
  		return "", "", errors.New(goMsg)
  	}
  
  	user := C.GoStringN(username, C.int(usernameLen))
  	pass := C.GoStringN(secret, C.int(secretLen))
  	return user, pass, nil
  }
docs: // Get returns the username and secret to use for a given registry server URL.