private static unsafe void DeserializePublicKey(byte *deserializedRef, byte *serializedRef) { int bytesRead = Platform switch { OsPlatform.Windows => Win64Lib.blsPublicKeyDeserialize(deserializedRef, serializedRef, PublicKeyLength), OsPlatform.Linux => PosixLib.blsPublicKeyDeserialize(deserializedRef, serializedRef, PublicKeyLength), OsPlatform.Mac => MacLib.blsPublicKeyDeserialize(deserializedRef, serializedRef, PublicKeyLength), _ => throw new ArgumentOutOfRangeException(Platform.ToString()) }; if (bytesRead != PublicKeyLength) { throw new CryptographicException($"Bytes read was {bytesRead} instead of {PublicKeyLength} when deserializing private key"); } }