Post

Replies

Boosts

Views

Activity

Reply to How to persist SecureEnclave.P256.Signing.PrivateKey
Thanks Quinn! You know, there are days where I feel I would not get anything done without you helping me out... Does that mean the dataRepresentation of a SecureEnclave.P256.Signing.PrivateKey is already stored in the keychain by the system, but is inaccessible to client code so the only way for it to get a reference to such a key is to store the dataRepresentation itself and recreate the key from it? And if the key had instead been created by not using CryptoKit, but the Security framework (passing .privateKeyUsage in the access control list) it could later be retrieved by SecItemCopyMatching, correct?
Topic: Privacy & Security SubTopic: General Tags:
Jun ’22
Reply to Use nscurl with client certificate?
Why do you need this in nscurl specifically? Mostly just to understand how specific status codes are handled on iOS. To elaborate: I have been hitting the same issue described here and here - the URL Loading System raises an error if it receives a response with the status code 403 and a client certificate was involved in the handshake (regardless of whether the certificate was accepted or not). I (re-)raised this as FB10026351. In my case all requests to the server require client authentication and the server may return 403 for unrelated reasons (e.g. for domain errors). The server team agreed to use a different status code for those cases but wanted me to make sure they don't pick one where a similar situation could arise. In my lab appointment the network engineer pointed out that there are in fact status codes other than 403 that receive special treatment and suggested using nscurl to quickly check how specific status codes are handled, but apparently the behaviour changes if a client certificate is involved. Here is what I found: Without client authentication: If no client certificate is involved and the server responds with 401 the client gets an error (NSURLErrorCannotConnectToHost) If no client certificate is involved and the server responds with 403 the client gets the response With client authentication: If a (valid) client certificate is involved and the server responds with 401 the client gets the response If a (valid) client certificate is involved and the server responds with 403 the client gets an error (NSURLErrorClientCertificateRequired) However, the scenarios involving a client certificate cannot be tested with nscurl, hence my question.
Topic: App & System Services SubTopic: General Tags:
Jun ’22
Reply to How to persist SecureEnclave.P256.Signing.PrivateKey
Thanks Quinn! You know, there are days where I feel I would not get anything done without you helping me out... Does that mean the dataRepresentation of a SecureEnclave.P256.Signing.PrivateKey is already stored in the keychain by the system, but is inaccessible to client code so the only way for it to get a reference to such a key is to store the dataRepresentation itself and recreate the key from it? And if the key had instead been created by not using CryptoKit, but the Security framework (passing .privateKeyUsage in the access control list) it could later be retrieved by SecItemCopyMatching, correct?
Topic: Privacy & Security SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’22
Reply to Use nscurl with client certificate?
Why do you need this in nscurl specifically? Mostly just to understand how specific status codes are handled on iOS. To elaborate: I have been hitting the same issue described here and here - the URL Loading System raises an error if it receives a response with the status code 403 and a client certificate was involved in the handshake (regardless of whether the certificate was accepted or not). I (re-)raised this as FB10026351. In my case all requests to the server require client authentication and the server may return 403 for unrelated reasons (e.g. for domain errors). The server team agreed to use a different status code for those cases but wanted me to make sure they don't pick one where a similar situation could arise. In my lab appointment the network engineer pointed out that there are in fact status codes other than 403 that receive special treatment and suggested using nscurl to quickly check how specific status codes are handled, but apparently the behaviour changes if a client certificate is involved. Here is what I found: Without client authentication: If no client certificate is involved and the server responds with 401 the client gets an error (NSURLErrorCannotConnectToHost) If no client certificate is involved and the server responds with 403 the client gets the response With client authentication: If a (valid) client certificate is involved and the server responds with 401 the client gets the response If a (valid) client certificate is involved and the server responds with 403 the client gets an error (NSURLErrorClientCertificateRequired) However, the scenarios involving a client certificate cannot be tested with nscurl, hence my question.
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’22