Commit Graph

17 Commits

Author SHA1 Message Date
graeme thornton
21adb81f48 Created a new interface to RSA functionality that is independent of key size (unlike the old TBigInt version). Internally, RSA functions are implemented by OpenSSL on Windows/Mac/Linux an falling back to the TBigInt implementation for other platforms
- Future plan would be not to use OpenSSL directly, but to go via PlatformCrypto or something like it which could provide platform specific RSA functionality if it exists
- Also contains some compensation code for platforms that are still stuck on an older version of OpenSSL (everything except windows)
- On platforms that use OpenSSL < 1.1.1, register a locking callback so we can provide mutexes and stop it crashing horribly when the same RSA key is used concurrently on different threads

Changed default key size in the CryptoKeys plugin to 4096 bits.

#jira UE-71377
#rb ian.fox, robert.manuszewski, ryan.gerleve

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 5447433 in //UE4/Release-4.22/... via CL 5447485
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5447724 by graeme thornton in Dev-Networking branch]
2019-03-19 09:01:05 -04:00
graeme thornton
a374031f9f Improvements to RSA key generation and pak signing
- CryptoKeys plugin can now be told how many bits to use for keys. Defaults to 2048 as a happy medium between security and performance
- After creating the OpenSSL RSA key, use the exp/mod values directly rather than recomputing from primes
- Added RSA.h with some TBigInt based helpers for RSA keys
- Added FPakSignatureFile to wrap the contents of the pak .sig file, including determining that it is of a new format that supports versioning. Wraps the encryption and decryption of he master table hash
- Changed pak master signature hash from crc to SHA1
- Modified access to executable embedded public key data so that it is just an array of bytes. Will allow custom key sizes in the future.

#rb joe.barrett, stefan.boberg
#jira UE-71280, UE-71377

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 5381335 in //UE4/Release-4.22/... via CL 5383057
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5415560 by graeme thornton in Dev-Networking branch]
2019-03-15 12:02:13 -04:00
graeme thornton
6a3327e900 Minor unrealpak refactor
- Added a "-sign" parameter to enable signing for the given pak. The cached settings in the crypto.json file aren't used to enable signing any more.
 - Encapsulated all signing and encryption keys in a single keychain object which is passed around, rather than individual keys
 - Added some validation to UBT/UAT encryption config parsing so that if you enable any signing or encryption stuff but haven't generated a key, it'll warn and disable everything.

#jira

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 5237725 via CL 5237726 via CL 5240337 via CL 5240343
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5256133 by graeme thornton in Dev-Networking branch]
2019-02-28 18:27:59 -05:00
josh adams
86071fdfce - Merging Dev-Kairos/Engine/... to Main/Engine/...
- Brings over the necessary engine changes for embedding UE4 mobile as a dylib/so in native mobile app
- Various changes for facial animation, screen recording, others
- ARKit and ARCore plugins were removed, as deemed "not ready"
#rb many people

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 5201138 via CL 5203024 via CL 5226277
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5246044 by josh adams in Dev-Networking branch]
2019-02-28 17:14:17 -05:00
gil gribb
8a56af6832 UE4 - Moved mapped ubulk files to .m.ubulk so that they can be aligned and not compressed without affecting other bulk data such as textures.
#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: gil.gribb
#ROBOMERGE-SOURCE: CL 5010556 via CL 5010559 via CL 5013445 via CL 5037908
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5122546 by gil gribb in Dev-Networking branch]
2019-02-22 01:01:54 -05:00
josh adams
faf3c16242 - Reenabled encryption on bulk files with memory mapping - and then disallow mapping at runtime
#rb gil.bribb
[FYI] gil.gribb

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 4998359 via CL 4998360 via CL 4999252 via CL 5001374
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5084887 by josh adams in Dev-Networking branch]
2019-02-19 19:37:48 -05:00
josh adams
44ef397721 iOS - Enabled animation memory mapped IO on IOS. Saves 10-20 megs of memory
#rb josh.adams

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: gil.gribb
#ROBOMERGE-SOURCE: CL 4993025 via CL 4993026 via CL 4995423 via CL 4999718
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5083260 by josh adams in Dev-Networking branch]
2019-02-19 19:18:23 -05:00
josh adams
c510e3cc7b - Memory Mapped IO enabled on IOS for Audio (via ini and platform property)
- -nommio on the commandline will disble it for testing
#rb gil.gribb

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 4963115 via CL 4963118 via CL 4963812 via CL 4969283
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5074095 by josh adams in Dev-Networking branch]
2019-02-19 17:29:04 -05:00
ben marsh
3028faba18 Trigger a link error whenever a module is missing a valid IMPLEMENT_MODULE macro on Windows.
The IMPLEMENT_MODULE macro now defines an empty function called IMPLEMENT_MODULE_{ModuleName}, to which we force a reference to via the linker command line. This behavior can be disabled on a per-module basis by setting bRequiresImplementModule = false from a .build.cs file.

#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4827582 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4830013 by ben marsh in Dev-Networking branch]
2019-01-29 05:14:09 -05:00
robert manuszewski
be36beb7e4 Copying //UE4/Dev-Core [at] 4771952 to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown Nick.Penwarden

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 4772220 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4782699 by robert manuszewski in Dev-Networking branch]
2019-01-23 09:49:18 -05:00
graeme thornton
62a6a3af2d Removed signing key generation functionality from unrealpak. Keys should be generated with the CryptoKeys plugin in the editor now
#jira UE-68090


#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 4760704 via CL 4760706 via CL 4760723
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4760777 by graeme thornton in Dev-Networking branch]
2019-01-21 09:30:11 -05:00
graeme thornton
ca166ea51e Unrealpak: Throw a meaningful error when a crypto keys cache is specified on the command line that doesn't exist
#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 4750032 via CL 4750034 via CL 4750036 via CL 4750039
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4750046 by graeme thornton in Dev-Networking branch]
2019-01-18 06:10:15 -05:00
James Hopkin
235137b0cc Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
Copying to Dev-Main @ CL# 4688301

#rb none

[CL 4707991 by James Hopkin in Dev-Networking branch]
2019-01-11 02:57:03 -05:00
ben marsh
2b46ba7b94 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4662404 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4662413 by ben marsh in Dev-Networking branch]
2018-12-14 13:44:01 -05:00
ryan gerleve
289a4fa159 Copying //UE4/Fortnite-Staging to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown Nick.Penwarden

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4567513 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4573136 by ryan gerleve in Dev-Networking branch]
2018-11-16 14:01:06 -05:00
Ryan Gerleve
9af1fb3463 Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
#rb none
#rnx

[CL 4516466 by Ryan Gerleve in Dev-Networking branch]
2018-10-29 10:01:28 -04:00
Ryan Gerleve
e7612e89b2 Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
#rb none
#rnx

[CL 4341874 by Ryan Gerleve in Dev-Networking branch]
2018-09-04 14:32:41 -04:00