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