Граф коммитов

39 Коммитов

Автор SHA1 Сообщение Дата
Sebastien Pouliot 353ce95c70
[macos][security] Re-enable SSL[Get|Set]AlpnProtocols. Fixes #4001 (#4022)
* [macos][security] Re-enable SSL[Get}Set]AlpnProtocols. Fixes #4001

This was fixed in macOS 10.13.4

https://github.com/xamarin/xamarin-macios/issues/4001
2018-05-02 20:32:30 -04:00
Vincent Dondain 2a84c116db Merge branch 'xcode9.3' 2018-04-03 14:14:07 -04:00
Sebastien Pouliot 1b3672e2e3
[tests][mac] Fix random failure in KeyTest.RoundtripRSAMinPKCS1 (#3737)
The behaviour is not consistent on macOS (like it is on iOS)

Fixes https://github.com/xamarin/maccore/issues/671
2018-03-14 08:00:06 -05:00
mdbech 933ab0d70a [security] Strongly typed key generation (#3502)
* [security] Modifying structure of bindings

Added strong dictionary for key generation according to
https://developer.apple.com/documentation/security/certificate_key_and_trust_services/keys/key_generation_attributes
in preparation making a strongly typed key generation possible.

* Making strong dictionary and composite of other strong dictionaries.

* Implementing access control as property type of SecPublicPrivateKeyAttrs.

* Adding new overload for SecKey.CreateRandomKey.

* Moving TokenID to strongly typed property.

* Fix coding style + use nameof

* Fixing Xcode version assertion of key generation tests.

* Fixing errors in test case.

* Fixing whitespace issue.

* Resolving inheritance issue

Removing inheritance between SecKeyGenerationParameters and
SecPublicPrivateKeyAttrs and instead add the necessary properties
to SecKeyGenerationParameters. Adds redundant code, but I don't
see a way around it.

* Moving test case to appropriate test class.

* Creating necessary strong dictionaries for key generation.

* [formatting] Mono coding guidelines

Make sure you're following http://www.mono-project.com/community/contributing/coding-guidelines/
In VSMac: Preferences > Source Code > Code Formatting > C# source code > Policy Mono.

* Remove [Advice] that are specific to GenerateKeyPair

`SecKeyGenerationParameters` and `SecKeyParameters` cannot be used for `GenerateKeyPair`.

* Clarify 'ArgumentException' for invalid 'SecKeyType'

* Fixed CreateRandomKeyTest

- Renamed CreateRandomKeyWithParametersTests to CreateRandomKeyTest.
- Add messages to all asserts.

```
keyGenerationParameters = new SecKeyGenerationParameters ();
keyGenerationParameters.KeyType = SecKeyType.Invalid;
Assert.Throws<ArgumentException> (() => { SecKey.CreateRandomKey (keyGenerationParameters, out _); }, "CreateRandomKey - invalid key type");
```
- ^ didn't work because `SecKeyGenerationParameters`'s setter protects against invalid. There's no constant for invalid so null is returned.

```
Assert.That (SecKey.CreateRandomKey (keyGenerationParameters, out _), Is.EqualTo (SecStatusCode.Param), "CreateRandomKey - Param issue, invalid RSA key size");
```
- ^ `SecKey.CreateRandomKey` doesn't return a `SecStatusCode` like `GenerateKeyPair`.

* Fixes based on spouliot's input.

* Mono styling fix.
2018-03-06 15:25:50 -05:00
Sebastien Pouliot 29676a3662 Merge 15.6 into xcode9.3 2018-03-05 17:16:28 -05:00
Alex Soto 47163efdb6
[Tests] Fixes CertificateTest for ios < 10 (#3500)
`SecKeyCopyAttributes` is iOS 10+ and is used by `GetAttributes`
2018-02-15 11:47:37 -06:00
Vincent Dondain 9408eb081d
[security] Add new 'SecKey.GenerateKeyPair' overloads (#3438)
The new overloads allow to set `kSecPrivateKeyAttrs` and `kSecPublicKeyAttrs`.

Fixes bug #34135: Need some constants exposed in Xamarin.iOS binding
(https://bugzilla.xamarin.com/show_bug.cgi?id=34135)

The new APIs were created according to https://developer.apple.com/documentation/security/1395339-seckeygeneratepair?language=objc

Also add `GenerateKeyPairTest`.
2018-02-14 23:34:52 -05:00
Alex Soto a6204f2aa5
[Security] Update to Xcode 9.3 Beta 1 (#3344)
* [Security] Update to Xcode 9.3 Beta 1

Api diff:
- https://github.com/xamarin/xamarin-macios/wiki/Security-iOS-xcode9.3-beta1
- https://github.com/xamarin/xamarin-macios/wiki/Security-tvOS-xcode9.3-beta1
- https://github.com/xamarin/xamarin-macios/wiki/Security-watchOS-xcode9.3-beta1
- https://github.com/xamarin/xamarin-macios/wiki/Security-macOS-xcode9.3-beta1

* Update the xtro files

* Add SecCopyErrorMessageString binding
2018-01-27 16:26:43 -06:00
Sebastien Pouliot d6dcbbf37f
[tests][macos] RoundtripRSAMinPKCS1 public/GetPublicKey should be false on 10.13 (#3116) (#3297) 2018-01-25 09:01:32 -05:00
Timothy Risi 6ad9014c9f [Xammac_tests] RoundtripRSAMinPKCS1 public/GetPublicKey should be false on 10.13 (#3116) 2017-12-22 10:29:59 -05:00
Sebastien Pouliot 48530bcd8d
[tests][security] Update TrustTest to run faster (without timeouts) (#3108)
The original test was to cover both X509Certificate and X509Certiicate2
when using with SecTrust. However the code diverged over time. That and
the different certificates used caused the `*2` tests to hit a time
loop (designed to reduce incorrect errors randomly reported).

We want to keep the "delay" logic for it's intended purpose - but it
should not be needed normally.

The tests have been refactored to reuse the same logic (between both
types of certificates) which solve this (when used with the same
certificates)

Replace https://github.com/xamarin/xamarin-macios/pull/3068
2017-12-18 11:14:31 -05:00
Vincent Dondain d7b7a6ea02 Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
Chris Hamons 4c966e3e71 Fix macOS 10.13 test failures (#3066) 2017-12-03 19:45:28 -05:00
Alex Soto 74d2dcadfb
[tests] Fix introspection tests for macOS (#3054)
* [tests] Fix introspection tests for macOS

It seems that apple forgot to ship SSLSetALPNProtocols and SSLCopyALPNProtocols in macOS
there are already radars filled about this https://bugs.swift.org/browse/SR-6131
So this test will fail once Apple fixes this issue. when this happens we need to do two things, reenable
the API and reenable the [Get|Set]AlpnProtocols tests, the one insides 'StreamDefaults' for the mac.

* Implement feedback
2017-11-28 17:27:20 -06:00
Sebastien Pouliot 4ad96b03fa
[security] Add bindings for Xcode 9 (#3043)
Also covers the missing enum value (added in xcode9) from
https://bugzilla.xamarin.com/show_bug.cgi?id=59278
2017-11-26 09:53:04 -05:00
Sebastien Pouliot 03b9d1759e
[security] Add RequestSharedWebCredential overload. Fixes #60423 (#2940)
* The original API was incorrect. Lack of documentation at binding time?
* Use a strong dictionary to expose the credentials

The fixed version cannot be unit tested since it popups an UI.

The test case attached to the bug report [1] can be used to verify it.

reference:
[1] https://bugzilla.xamarin.com/show_bug.cgi?id=60423
2017-11-02 14:54:39 -04:00
Timothy Risi 2926a13f7e
[test] Change monotouch-test and xammac_tests to use all .cs files in monotouch-test/ Fixes #60290 (#2930)
Exclude the registrar/trampoline generated files from xammac_tests
Remove CoreLocation.LocationTest since is covered by introspection
2017-10-31 08:09:21 -08:00
Sebastien Pouliot 05eb96d0a7 Merge branch 'xcode9' into xcode9-master-merge 2017-09-15 11:05:30 -04:00
Vincent Dondain a628b5c799 [security] Fix SecKeyChain.QueryAsData (#2485)
- Fixes bug #58720: SecKeychain.QueryAsData returns invalid data type
(https://bugzilla.xamarin.com/show_bug.cgi?id=58720)

As per Apple's doc: https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_return_result_keys?language=objc
when multiple return types are requested (when wantPersistentReference is set to true),
the underlying native return type is an NSDictionary not an NSData.

As per https://bugzilla.xamarin.com/show_bug.cgi?id=58720#c3
when trying to access the byte property of the NSData object, we'd get an "unrecognized selector sent to instance".
This is confirmed by the added test.
2017-08-24 11:31:49 -04:00
Sebastien Pouliot 15af3164aa [tests] Disable/tweak two tests that breaks on (almost) all Xcode updates
Those tests were not added to validate xOS so just keep the parts
that helps us (without constantly checking back the new break flavor)
2017-07-24 19:45:38 -04:00
Vincent Dondain 19d6d253a8 Bump to Xcode 9 beta 3 (#2306)
- Updated Visual Studio max version in Make.config.
- Fixed iOS introspection tests.
- Fix monotouch-test
   - Same issue with MPVolumeView as intro tests.

* Fix TrustTest

* Disable NSMutableCopying on HMCharacteristicEvent

* Fix HMCharacteristicEvent / HMMutableCharacteristicEvent
2017-07-10 22:43:44 -04:00
Sebastien Pouliot 6f68ab6f79 [tests][security] Re-enable some tests inside KeyTest. Fix #51277 (#2103)
The minimum size for RSA keypairs is 1024 bits on macOS while it is
512 bits on iOS. Some tests using the minimum size (because we test the
API not the security) were disable on macOS. This re-enables them using
the platform minimum.

https://bugzilla.xamarin.com/show_bug.cgi?id=51277
2017-05-17 21:59:35 -04:00
Chris Hamons d0963e2097 [macos] Fix test failure in CertificateTest (#2036)
- SecCertificateCopyEmailAddresses behaves differently on macOS than iOS with
 macOS getting the "documented" behavior of returning an empty array and iOS
 returning null.
- Fix the test to just accept null or 0 elements
2017-04-26 13:22:19 -05:00
Sebastien Pouliot bcf27ce090 [security] Add more SecCertificate* API from beta1. Fixes #52505 (#1695)
They were thought to be macOS only but xtro corrected me, they are
new in iOS 10.3 even if some existed previously.

references (xtro):
!missing-pinvoke! SecCertificateCopyCommonName is not bound
!missing-pinvoke! SecCertificateCopyEmailAddresses is not bound
!missing-pinvoke! SecCertificateCopyNormalizedIssuerSequence is not bound
!missing-pinvoke! SecCertificateCopyNormalizedSubjectSequence is not bound
!missing-pinvoke! SecCertificateCopyPublicKey is not bound
!missing-pinvoke! SecCertificateCopySerialNumber is not bound

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=52505
2017-03-28 09:34:52 -05:00
Sebastien Pouliot 2ee5201b84 [tests][monotouch] Generalize some tests to be independent of iOS version. Fixes #51801 (#1598)
The exact values are not what we need to test for and varies with
different OS versions - making tests fails for no good reason (i.e.
they are not canary used to detect changes)

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=51801
2017-03-28 09:16:08 -05:00
Timothy Risi 687aa6f25f Port monotouch-test suite to Xamarin.Mac (#1445)
* Port the Monotouch-test suite to run on Xamarin.Mac

Adds over 1300 new API tests for XM
2017-01-12 09:13:56 -09:00
Alex Soto b8bd71c7b5 [Security] Add convenience Certificate, Key and Identity ctors to SecRecord (#905) 2016-09-28 08:17:39 -04:00
Sebastien Pouliot eb8d0be0a4 [security] Add new API (up to beta 6) and unit tests (#646)
A problem, that exists with the current API, is that several constants
are hidden but many are needed in some dictionaries - and not all of
them can be turned into _classic_ StrongDictionary.

This initial PR does not solve all the (old) problems, but it does offer
some useful overloads that makes the API usable for basic usages and
expose the NSDictionary-based API.
2016-08-23 11:36:39 -04:00
Sebastien Pouliot 7637658e28 Merge branch 'cycle8' into xcode8 2016-07-21 11:40:41 -04:00
Sebastien Pouliot 72d0658344 [security][tvos] Remove SecSharedCredential API (#457)
Xcode8 SDK (for tvOS 10) marked those API with __TVOS_UNAVAILABLE making
them only available on iOS.

Since the API are not yet released in stable (C8) so we can removing
them  proactively. It will be easier to add them back later (if the
situation change) than removing/obsoleting them.
2016-07-21 11:37:28 -04:00
Sebastien Pouliot 980e71bc10 Bump Xcode requirement to 8.0 beta 3 (#418) 2016-07-18 23:16:44 -04:00
Rolf Bjarne Kvinge 1bc24751d0 [monotouch-test] Fix watchOS build. (#317) 2016-06-29 06:28:30 -07:00
Rolf Bjarne Kvinge 1a1958f52d Merge remote-tracking branch 'origin/master' into xcode8 2016-06-28 12:44:08 +02:00
Rolf Bjarne Kvinge d8b4fff4e3 [monotouch-test] Disable test that uses TcpClient on watchOS, since TcpClient doesn't work on watchOS. 2016-06-27 13:07:37 +02:00
Rolf Bjarne Kvinge b4bb30c13c [monotouch-test] Adjust tests according to watchOS behavior. 2016-06-27 13:07:37 +02:00
Rolf Bjarne Kvinge 0a8c6e3342 [tests] Check versions using Xcode version instead of platform version.
This is required to match API to the required platform version,
since our platforms have different version numbers.
2016-06-27 13:07:37 +02:00
Sebastien Pouliot 004fe2f8d8 [tests][monotouch] More adjustments for iOS10 related failures/changes (#239)
* [tests][monotouch] More adjustments for iOS10 related failures/changes

- some might be Apple bugs and need to be reverted later

* Fix more failures on monotouch-tests wrt iOS 10

* MutableContactTest.cs: Wrong assert was changed (which is why each one
  needs it's own unique string)

* TrustTest.cs: Fixed as results vary on < iOS9, iOS9 and iOS10

* NetworkReachabilityTest.cs: Fixed as results vary on < iOS9, iOS9 and iOS10

Those

[FAIL] UserDefaultsTest.Ctor_UserName : System.NullReferenceException : Object reference not set to an instance of an object
[FAIL] UserDefaultsTest.SetString : StringForKey-2

are due to

http://stackoverflow.com/questions/37840288/ios-10-nsuserdefaults-does-not-work

and should disappear once the bots are rebooted.
2016-06-22 16:28:27 -04:00
Sebastien Pouliot ebbc8addcc [tests] Some fix for monotouch-test needed wrt iOS 10 (#236)
* Adjust ever changing AddressFormatingTest for iOS 10, which does
  not output the country;

* Adjust Contact's ICNKeyDescriptor internal check;

* CLBeaconRegion.ProximityUuid does not return the original instance
  anymore, but a different one with the same uuid;

* Add a small delta for Vector3 comparison in ModelIO tests;

* Adjust MapKit tests for pin color change and MapRect corner case;

* SecKeyTest with corner cases now pass (they failed before);

* SecPolicyIdentifier.AppleIDValidation does not report the OID it's
  created from (migration?)

Note: some might be bugs that Apple will fix in later seeds
2016-06-19 09:32:01 -07:00
Rolf Bjarne Kvinge ecfdea9508 [tests] Import 2016-05-26 15:06:52 +02:00