Function

SecRequestSharedWebCredential

Asynchronously obtains one or more shared passwords for a website.

Declaration

void SecRequestSharedWebCredential(CFStringRef fqdn, CFStringRef account, void (^completionHandler)(CFArrayRef credentials, CFErrorRef error));

Parameters

fqdn

(Optional) The fully qualified domain name of the website for which passwords are being requested. If NULL is passed in this argument, the domain name(s) listed in the calling app’s Associated Domains Entitlement are searched implicitly.

account

(Optional) The account name for which passwords are being requested. The account may be NULL to request all of the shared credentials that are available for the site, allowing the caller to discover an existing account.

completionHandler

A block that is called to deliver the requested credentials.

The block takes two arguments:

credentials

An array containing the requested passwords. If no matching items are found, the credentials array is empty. The credentials reference is automatically released after this handler is called, though you may optionally retain it for as long as needed.

error

If the shared password was successfully added (or removed), NULL; if not successful, a CFErrorRef object that encapsulates the reason why the password could not be added (or removed). The error reference is automatically released after this handler is called, though you may optionally retain it for as long as needed.

Discussion

This function requests one or more shared passwords for a given website, depending on whether the optional account parameter is supplied. To obtain results, the website specified in the fqdn parameter must be one that matches an entry in the calling app’s Associated Domains Entitlement.

If matching shared password items are found, the credentials provided to the completion handler will be a CFArrayRef data type containing CFDictionaryRef entries. Each dictionary contains the following pairs:

If the found item specifies a nonstandard port number (other than 443 for https), the following key may also be present:

kSecAttrPort

CFNumberRef (the port number)

See Also

Password Sharing

SecAddSharedWebCredential

Asynchronously stores (or updates) a shared password for a website.

SecCreateSharedWebCredentialPassword

Returns a randomly generated password.

kSecSharedPassword

A dictionary key whose value is the shared password.