Calling `SecKeyChain.Update` method to update the Keychain value returns SecStatusCode.Param instead of SecStatusCode.Success
The keychain API is pretty horrible. Our own API tries to hide part of this - but they still have holes.
Now I'm not sure I understand the code intent. It seems like it's looking for a `GenericPassword` and, if found, it tries to _update_ it to `InternetPassword`. IIRC you can't update the kind of a record. In fact you can only update _some_ of its properties.
E.g. `kSecValueData` (which in XI is `ValueData`) is _not_ allowed in updates, see Apple doc  and SO post 
So the query is incorrect. What was done, in `QueryAs*` method was to hide those requirements from the developer. However that was not done for the `Update` method. Worse the constants required to create a correct query are not exposed publicly.
@Prashant I can likely provide a workaround for the specific case required for the customer. However the code in the gist does not seems correct (GenericPassword vs InternetPassword). Can you confirm what's the intended goal ?
hi all, can u please revert on this one soon as possible. Its a security requirement (from our Chief Security Officer) and its holding up testing here. Appreciate your help.
Created attachment 23824 [details]
I can confirm using the latest Xamarin.iOS 10.12.0.14 that I am able to reproduce this issue.
Use this attachment and run on a simulator. Notice the `err` value / output to console.
Updating to CONFIRMED per comment 4.