예제 #1
0
        internal override bool TryImportKey(
            ReadOnlySpan <byte> blob,
            KeyBlobFormat format,
            out SecureMemoryHandle keyHandle,
            out byte[] publicKeyBytes)
        {
            switch (format)
            {
            case KeyBlobFormat.RawSymmetricKey:
                return(s_rawKeyFormatter.TryImport(blob, out keyHandle, out publicKeyBytes));

            case KeyBlobFormat.NSecSymmetricKey:
                return(s_nsecKeyFormatter.TryImport(blob, out keyHandle, out publicKeyBytes));

            default:
                throw Error.Argument_FormatNotSupported(nameof(format), format.ToString());
            }
        }
예제 #2
0
        internal override bool TryImportKey(
            ReadOnlySpan <byte> blob,
            KeyBlobFormat format,
            MemoryPool <byte> memoryPool,
            out ReadOnlyMemory <byte> memory,
            out IMemoryOwner <byte>?owner,
            out PublicKey?publicKey)
        {
            publicKey = null;

            switch (format)
            {
            case KeyBlobFormat.RawSymmetricKey:
                return(RawKeyFormatter.TryImport(KeySize, blob, memoryPool, out memory, out owner));

            case KeyBlobFormat.NSecSymmetricKey:
                return(NSecKeyFormatter.TryImport(NSecBlobHeader, KeySize, MacSize, blob, memoryPool, out memory, out owner));

            default:
                throw Error.Argument_FormatNotSupported(nameof(format), format.ToString());
            }
        }