SecKeyChain Class

Definition

Access to the operating system keychain.

public class SecKeyChain : ObjCRuntime.INativeObject
type SecKeyChain = class
    interface INativeObject
Inheritance
SecKeyChain
Implements

Remarks

This class can be used to add, remove, update or query the iOS or MacOS keychain. MacOS is limited to a single kind of password (SecKind.InternetPassword) while iOS offers a wider range of options.

Use QueryAsData(SecRecord, Boolean, Int32, SecStatusCode) to get values from the keychain as a binary blob. Some of the overloads can also return binary blobs that are suitable to be stored on disk, or passed to another process.

Use QueryAsConcreteType(SecRecord, SecStatusCode) to get a SecCertificate, a SecKey or a SecIdentity back from the keychain.

Use M:Security.SecKeyChain.QueryAsRecord* to get a strongly typed SecRecord with the results of your query.

var query = new SecRecord (SecKind.InternetPassword) {
   Server = "bugzilla.novell.com",
   Account = "miguel"
};
var password = SecKeyChain.QueryAsData (query);
Console.WriteLine ("The password for the account is: {0}", password);

Properties

Handle

Handle (pointer) to the unmanaged object representation.

Methods

Add(SecRecord)

Adds the specified record to the keychain.

AddGenericPassword(String, String, Byte[])
AddIdentity(SecIdentity)
AddInternetPassword(String, String, Byte[], SecProtocol, Int16, String, SecAuthenticationType, String)
FindGenericPassword(String, String, Byte[])
FindIdentity(SecCertificate, Boolean)
FindInternetPassword(String, String, Byte[], SecProtocol, Int16, String, SecAuthenticationType, String)
QueryAsConcreteType(SecRecord, SecStatusCode)

Use this method to query the KeyChain and get back a SecCertificate, a SecKey or a SecIdentity.

QueryAsData(SecRecord)

Fetches an NSData record from the Keychain.

QueryAsData(SecRecord, Boolean, Int32, SecStatusCode)

Fetches a set of NSData records from the Keychain.

QueryAsData(SecRecord, Boolean, SecStatusCode)

Fetches a set of NSData records from the Keychain.

QueryAsData(SecRecord, Int32)

Fetches a set of NSData records from the Keychain.

QueryAsRecord(SecRecord, Int32, SecStatusCode)

Fetches one or more SecRecords.

QueryAsRecord(SecRecord, SecStatusCode)

Fetches a single SecRecord.

QueryAsReference(SecRecord, Int32, SecStatusCode)
Remove(SecRecord)

Removes the specified record from the keychain.

RemoveIdentity(SecIdentity)
Update(SecRecord, SecRecord)

Updates the record matching the query with the provided data.

Applies to

See also