code: func (h Osxkeychain) Add(creds *credentials.Credentials) error {
  	h.Delete(creds.ServerURL)
  
  	s, err := splitServer(creds.ServerURL)
  	if err != nil {
  		return err
  	}
  	defer freeServer(s)
  
  	label := C.CString(credentials.CredsLabel)
  	defer C.free(unsafe.Pointer(label))
  	username := C.CString(creds.Username)
  	defer C.free(unsafe.Pointer(username))
  	secret := C.CString(creds.Secret)
  	defer C.free(unsafe.Pointer(secret))
  
  	errMsg := C.keychain_add(s, label, username, secret)
  	if errMsg != nil {
  		defer C.free(unsafe.Pointer(errMsg))
  		return errors.New(C.GoString(errMsg))
  	}
  
  	return nil
  }
docs: // Add adds new credentials to the keychain.