Since GetPublicKey_RSA() is using a PEM_read function within OpenSSL, binary string representation specializations are not necessary. Additionally, key handling on the switch platform with GetPublicKey_RSA() was previously broken and now conforms to the key handling that is used in the rest of the platform specific plugin.
#rb stuart.hill, manuel.lang
[CL 26279553 by valentin ritzi in ue5-main branch]
Adding a specialized method of GetPublicKey_RSA() to convert FStringView source RSA public keys into the OpenSSL representation.
#rb stuart.hill
[CL 26233675 by valentin ritzi in ue5-main branch]
Adding SupportedTargetPlatforms to PlatformCrypto in order to hopefully get rid of the TVOS build errors.
[CL 26190692 by valentin ritzi in ue5-main branch]
Adding a utility method to calculate SHA256 hashes. One of the applications will be to verify JWTs down the line.
#rb stuart.hill
[CL 26150823 by valentin ritzi in ue5-main branch]
Adding the GetPublicKey_RSA method to convert raw bytes (i.e. coming from a string) to an RSA key in OpenSSL representation.
#jira UCS-7556
#rb stuart.hill
[CL 26089844 by valentin ritzi in ue5-main branch]
This is done by adding ability to reset PlatformCryptoEncrypto/Decryptor cipher with new IV values.
The performance improvements are from:
1) Doing initialization of encryption/decryption cipher only once, when key is set, not per each encryption/decryption operation.
2) Not calling platform random number generator for IV in each encryption of outgoing packet.
3) Some minor changes to avoid heap allocations for buffers with known size - changing TArray to TStaticArray.
Random bytes for IV in encryption are now generated only once, when key is set. Afterwards uniqueness of IV is done by incrementing IV bytes as 64-bit unsigned integer with wrap-around.
#rb fabian.giesen
#rb Peter.Engstrom
#rb Ryan.Gerleve
[CL 25967328 by martins mozeiko in ue5-main branch]
* Another batch iwyu updates to reduce number of includes used in files
#preflight 63c58d742e714f64ade93797
#rb none
[CL 23732856 by henrik karlsson in ue5-main branch]
* Updated public headers for ~170 engine plugins using iwyu to remove includes not needed. Removed includes are still available behind UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_2
#preflight 63c08f4a2a6acaf1622bcc73
#rb none
[CL 23674775 by henrik karlsson in ue5-main branch]
* Removed more includes using iwyu and marked up includes that is removed because of bugs in iwyu.
#preflight 63bfc8696c4f5668eb3a3cbd
#rb none
[CL 23666746 by henrik karlsson in ue5-main branch]
* Updated private files with IWYU for all plugins which had 3 or less changes made in ue5 main since last integration to fn
#preflight 63bf8d8b577437afe607dc72
#rb none
[CL 23659643 by henrik karlsson in ue5-main branch]
[FYI] Steven.Bedford
Original CL Desc
-----------------------------------------------------------------
Hooked up JWT verification process (RS256 and PS256 algorithms), without encryption key caching. Ported Base64url conversion from EOS SDK.
[REVIEW] [at]rob.cannaday [at]sam.zamani [at]michael.atchison [at]bertrand.carre [at]rafa.lecina
[CL 21511784 by kate ellis in ue5-main branch]
[REVIEW] [at]sam.zamani [at]michael.atchison [at]bertrand.carre
#ROBOMERGE-AUTHOR: steven.bedford
#ROBOMERGE-SOURCE: CL 20266783 via CL 20266835 via CL 20266858 via CL 20266901 via CL 20266925
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20269477 by steven bedford in ue5-main branch]