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

47 Коммитов

Автор SHA1 Сообщение Дата
Cykesiopka 28a88f8f35 Bug 1329238 - Make public CryptoKey.h methods return UniqueX NSS types instead of raw pointers. r=ttaubert
The std::unique_ptr based UniqueX types provide better safety over managing raw
pointers.

MozReview-Commit-ID: EwwOfs6RHqy

--HG--
extra : rebase_source : 7fbfca837c09b641bfffcba854d46b3f79645c0d
2017-01-25 00:27:39 +08:00
Cykesiopka 6ad50df726 Bug 1325104 - Stop using Scoped.h NSS types in CryptoKey.(cpp|h). r=ttaubert
Scoped.h is deprecated.

MozReview-Commit-ID: HVfrjM2haQf

--HG--
extra : rebase_source : acde1fb5db128db63cdb630d1e3c54175e69a768
2017-01-02 14:02:50 +08:00
Cykesiopka 79f483a3ad Bug 1308890 - Make use of ScopedAutoSECItem in CryptoKey.cpp. r=rbarnes
ScopedAutoSECItem is useful for getting rid of this pattern:
> ScopedSECItem item(SECITEM_AllocItem(nullptr, nullptr, 0));

While this pattern works, ScopedAutoSECItem is slightly superior in that it
doesn't unnecessarily cause a SECItem to be allocated from the heap. Moreover,
this moves us further away from Scoped.h, which is deprecated.

MozReview-Commit-ID: B30MNTHzzTc

--HG--
extra : rebase_source : 8d6dea205fc8800a46104b48c670eff250a4731a
2016-10-14 10:36:54 +08:00
Igor 60cd1e3bb7 Bug 1296180 - Replace more uses of PR_ARRAY_SIZE with mozilla::ArrayLength. r=keeler,mt 2016-09-09 13:17:52 -07:00
Phil Ringnalda 4b1303cc59 Back out 1eb6e4e4060f (bug 1296180) for Windows warning-as-error bustage
CLOSED TREE
2016-09-08 23:30:12 -07:00
Igor d42cc2cb4e Bug 1296180 - Replace more uses of PR_ARRAY_SIZE with mozilla::ArrayLengh. r=mt 2016-09-08 22:35:12 -07:00
Cykesiopka a16f7b0f6a Bug 1296316 - Convert nsNSSShutDownObject::CalledFromType to an enum class. r=mgoodwin
enum classes are in general safer than plain enums, and as such should be
preferred.

MozReview-Commit-ID: 1FK89SNhdk4

--HG--
extra : rebase_source : 764c4855026c02d8c9e33ca33637fec54ea5ca31
2016-08-20 23:00:19 +08:00
Tim Taubert 77edbd02e0 Bug 1289330 - Check for success when calling ToKeyAlgorithm() r=bz 2016-07-28 10:21:23 +02:00
David Keeler 905443cc71 bug 1264771 - randomize key IDs in WebCrypto r=ttaubert
To import private keys, WebCrypto creates a generic PKCS#11 object with a chosen
key ID with PK11_CreateGenericObject and then looks up that object as a
SECKEYPrivateKey using PK11_FindKeyByKeyID. It turns out that this is only safe
to do as long as the ID is unique. If another SECKEYPrivateKey exists that has
the same key ID (realistically this will only happen if an identical key is
imported again), PK11_FindKeyByKeyID may return the other key. Since
SECKEYPrivateKey objects are unique and not meant to be shared, this causes
problems in that when one key is destroyed, the resources backing the other key
are no longer valid, and any cryptographic operations using that key will fail.
The solution is to use random IDs and check for preexisting keys. NSS doesn't
yet expose an elegant API for this, but this patch implements a workaround.

MozReview-Commit-ID: EvYMZxnBxTv

--HG--
extra : rebase_source : 50408e1af9eb3934b51a0f01e02aa4890e57ed03
2016-05-04 12:48:37 -07:00
Tim Taubert b89ffb551c Bug 842818 - Enable structured cloning for CryptoKeys across threads r=baku,keeler 2016-01-20 23:22:41 +01:00
Tim Taubert 21dee167a8 Bug 1257325 - Silence VS2015 compiler warnings in CryptoKey.cpp f=gps r=rbarnes 2016-03-18 11:24:57 +01:00
David Keeler f386d7b91c bug 1234417 - fix a leak in CreateECPublicKey r=rbarnes
Before this patch, CreateECPublicKey would create a SECKEYPublicKey allocated on
a scoped arena. It would then call CryptoKey::PublicKeyValid, which has the
side-effect of importing the key to the internal PKCS#11 slot. When the arena
went out of scope, the memory for the key would be released, but the reference
to the slot wouldn't, causing a leak.

This patch fixes the leak by making the SECKEYPublicKey a ScopedSECKEYPublicKey
(which ensures that the type-specific "destructor" SECKEY_DestroyPublicKey is
called, which releases the reference to the PKCS#11 slot).

--HG--
extra : rebase_source : 10ef3c0e6ade78ab8ec4c95464224ba2e38aa17b
2015-12-21 17:14:41 -08:00
Tim Taubert 7f51dcc335 Bug 1204155 - Check if we're OOM when calling SECKEY_CopyPrivateKey() and SECKEY_CopyPublicKey() r=mt 2015-09-14 11:53:02 +02:00
Tim Taubert 786b045726 Bug 1204155 - Account for OOM in CryptoKey::SetSymKey() r=mt 2015-09-14 11:19:16 +02:00
Tim Taubert 3f5a17ca46 Bug 1188750 - CryptoKey::ReadStructuredClone() needs to ensure NSS is initialized before trying to deserialize a key r=keeler 2015-09-01 11:03:02 +02:00
Tim Taubert 3b0521bff7 Bug 1169890 - Check return values for CryptoBuffer.Assign() calls r=rbarnes 2015-05-30 08:28:45 +02:00
Tim Taubert 9a87f6a0e5 Bug 1050175 - Add raw import/export for EC public keys to the WebCrypto API r=rbarnes,smaug 2015-04-28 09:13:16 +02:00
Tim Taubert 43bc9aed8d Bug 1106087 - Recreate newly generated ECDH private keys with an CKA_EC_POINT attribute to support JWK and PKCS8 export r=rbarnes 2015-04-25 14:53:43 +02:00
Tim Taubert fb46a95e93 Bug 1158927 - Calls to CryptoKey::PrivateKeyToPkcs8() and ::PublicKeyToSpki() should check return values r=rbarnes 2015-04-27 20:47:12 +02:00
Andrew McCreight 9e8f4b219e Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Boris Zbarsky dc24477d79 Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp.  The
rest of this diff was generated by running the following commands:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Tim Taubert d83330ae57 Bug 1034856 - Follow-up to fix small SECItem leak in PublicKeyToSpki() on a CLOSED TREE r=bustage 2014-10-17 15:14:18 +02:00
Tim Taubert bea4fe0653 Bug 1034856 - Follow-up to fix small SECItem leak in PublicKeyToSpki() on a CLOSED TREE r=bustage 2014-10-17 15:05:59 +02:00
Tim Taubert 1e4378782a Backed out changeset ace6aa02d442 (bug 1034856) 2014-10-17 14:58:33 +02:00
Tim Taubert b0acb565de Bug 1034856 - Follow-up to fix small SECItem leak in PublicKeyToSpki() r=bustage 2014-10-17 13:30:41 +02:00
Tim Taubert 5fa60d8646 Bug 1034856 - Remove CryptoBuffer::ToSECItem() using moz_malloc() r=rbarnes 2014-09-03 09:40:21 -04:00
Tim Taubert 96e8ed9b9a Bug 1034856 - Implement SPKI public key import/export for DH r=rbarnes 2014-08-22 15:32:15 +02:00
Tim Taubert c1d2b2fa82 Bug 1034856 - Implement raw public key import/export for DH r=rbarnes,smaug 2014-08-22 12:02:14 +02:00
Tim Taubert 0f9e65c0e8 Bug 1034856 - Introduce DhKeyAlgorithm r=rbarnes,smaug 2014-07-20 05:51:10 +02:00
Richard Barnes f5092e255e Bug 1034854 - Add support for ECDSA to WebCrypto API r=ttaubert,dkeeler r=bz 2014-10-13 23:19:00 +02:00
Peter Van der Beken dcda2ba9bb Bug 1078744 - Replace SetIsDOMBinding with SetIsNonDOMBinding, remove nsWrapperCache::SetIsDOMBinding. r=bz.
--HG--
extra : rebase_source : 89c476cd9436530b2df5acc903909e34188417a0
2014-10-07 11:44:49 +02:00
Richard Barnes 63afe24da8 Bug 1037892 - Implement changes to WebCrypto API from latest Editor's Draft r=bz,ttaubert 2014-09-27 14:22:57 -04:00
Wes Kocher 6341575225 Backed out changeset 398bdeea30b0 (bug 1037892) for build bustage 2014-09-26 15:35:38 -07:00
Richard Barnes 8a9d1659d6 Bug 1037892 - Implement changes to WebCrypto API from latest Editor's Draft r=bz,ttaubert
* * *
Add check for old structured clone format.
2014-09-26 17:36:39 -04:00
Tim Taubert 400f767c33 Bug 1049434 - Don't allocate SECItems with new operator r=rbarnes 2014-08-06 12:15:35 +02:00
Tim Taubert cf9076f009 Backed out changeset 5184f19384c8 (bug 1049434) 2014-08-07 09:21:13 +02:00
Tim Taubert 17d1371eb6 Bug 1049434 - Don't allocate SECItems with new operator r=rbarnes 2014-08-06 12:15:35 +02:00
Tim Taubert d3f757e062 Bug 1034855 - Implement SPKI import/export for ECDH r=keeler,rbarnes 2014-08-04 09:39:12 +02:00
Tim Taubert a04d2cdc94 Bug 1034855 - Implement JWK import/export for ECDH r=rbarnes,keeler 2014-07-29 11:10:07 +02:00
Ryan VanderMeulen cdc1306825 Backed out 6 changesets (bug 1034855) for LSAN leaks on a CLOSED TREE.
Backed out changeset 0dc569f74991 (bug 1034855)
Backed out changeset 4eb0ee62db1e (bug 1034855)
Backed out changeset 4af8993f1534 (bug 1034855)
Backed out changeset f4f5f5b8421d (bug 1034855)
Backed out changeset 33510bb7ad60 (bug 1034855)
Backed out changeset 50b8670329aa (bug 1034855)
2014-08-05 14:04:08 -04:00
Tim Taubert 2d06be68cb Bug 1034855 - Implement SPKI import/export for ECDH r=keeler,rbarnes 2014-08-04 09:39:12 +02:00
Tim Taubert 5b5fc12a02 Bug 1034855 - Implement JWK import/export for ECDH r=rbarnes,keeler 2014-07-29 11:10:07 +02:00
Tim Taubert 8869021532 Bug 1041328 - Fix crash in CryptoKey::PrivateKeyFromPkcs8() when trying to import invalid key data r=rbarnes 2014-07-25 13:53:28 +02:00
Richard Barnes e10fdbd715 Bug 1025230 - Allow import/export of JWK-formatted keys in WebCrypto r=bz,keeler 2014-07-19 08:25:00 -05:00
Tim Taubert 3f882a20a0 Bug 1026314 - Rename Key to CryptoKey in WebCrypto r=rbarnes,bz
From 9beed249a4d08ccc945bc573a0c71d295cb1b222 Mon Sep 17 00:00:00 2001

--HG--
rename : dom/crypto/Key.cpp => dom/crypto/CryptoKey.cpp
rename : dom/crypto/Key.h => dom/crypto/CryptoKey.h
rename : dom/crypto/KeyPair.cpp => dom/crypto/CryptoKeyPair.cpp
rename : dom/crypto/KeyPair.h => dom/crypto/CryptoKeyPair.h
2014-06-23 23:25:13 +02:00
Ed Morley 1148a891c7 Backed out changeset 38831e922852 (bug 1026314) for test_interfaces.html failures
--HG--
rename : dom/crypto/CryptoKey.cpp => dom/crypto/Key.cpp
rename : dom/crypto/CryptoKey.h => dom/crypto/Key.h
rename : dom/crypto/CryptoKeyPair.cpp => dom/crypto/KeyPair.cpp
rename : dom/crypto/CryptoKeyPair.h => dom/crypto/KeyPair.h
2014-07-04 16:17:51 +01:00
Tim Taubert 02d0c6d693 Bug 1026314 - Rename Key to CryptoKey in WebCrypto r=rbarnes,bz
--HG--
rename : dom/crypto/Key.cpp => dom/crypto/CryptoKey.cpp
rename : dom/crypto/Key.h => dom/crypto/CryptoKey.h
rename : dom/crypto/KeyPair.cpp => dom/crypto/CryptoKeyPair.cpp
rename : dom/crypto/KeyPair.h => dom/crypto/CryptoKeyPair.h
2014-06-23 23:25:13 +02:00