func Add(service, account, pass string) error { errMsg := C.keychain_add(C.CString(service), C.CString(account), C.CString(pass)) if errMsg != nil { defer C.free(unsafe.Pointer(errMsg)) return errors.New(C.GoString(errMsg)) } return nil }
// Add adds new credentials to the keychain. func (h Osxkeychain) Add(creds *credentials.Credentials) error { s, err := splitServer(creds.ServerURL) if err != nil { return err } defer freeServer(s) 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, username, secret) if errMsg != nil { defer C.free(unsafe.Pointer(errMsg)) return errors.New(C.GoString(errMsg)) } return nil }