Beispiel #1
0
        public override byte[] ExportEncryptedPkcs8PrivateKey(
            ReadOnlySpan <byte> passwordBytes,
            PbeParameters pbeParameters)
        {
            if (pbeParameters == null)
            {
                throw new ArgumentNullException(nameof(pbeParameters));
            }

            return(CngPkcs8.ExportEncryptedPkcs8PrivateKey(
                       this,
                       passwordBytes,
                       pbeParameters));
        }
Beispiel #2
0
        public override void ImportEncryptedPkcs8PrivateKey(
            ReadOnlySpan <char> password,
            ReadOnlySpan <byte> source,
            out int bytesRead)
        {
            ThrowIfDisposed();
            CngPkcs8.Pkcs8Response response = CngPkcs8.ImportEncryptedPkcs8PrivateKey(
                password,
                source,
                out int localRead);

            ProcessPkcs8Response(response);
            bytesRead = localRead;
        }
Beispiel #3
0
        public override bool TryExportEncryptedPkcs8PrivateKey(
            ReadOnlySpan <byte> passwordBytes,
            PbeParameters pbeParameters,
            Span <byte> destination,
            out int bytesWritten)
        {
            ArgumentNullException.ThrowIfNull(pbeParameters);

            PasswordBasedEncryption.ValidatePbeParameters(
                pbeParameters,
                ReadOnlySpan <char> .Empty,
                passwordBytes);

            return(CngPkcs8.TryExportEncryptedPkcs8PrivateKey(
                       this,
                       passwordBytes,
                       pbeParameters,
                       destination,
                       out bytesWritten));
        }
Beispiel #4
0
        public override byte[] ExportEncryptedPkcs8PrivateKey(
            ReadOnlySpan <char> password,
            PbeParameters pbeParameters)
        {
            ArgumentNullException.ThrowIfNull(pbeParameters);

            PasswordBasedEncryption.ValidatePbeParameters(
                pbeParameters,
                password,
                ReadOnlySpan <byte> .Empty);

            if (CngPkcs8.IsPlatformScheme(pbeParameters))
            {
                return(ExportEncryptedPkcs8(password, pbeParameters.IterationCount));
            }

            return(CngPkcs8.ExportEncryptedPkcs8PrivateKey(
                       this,
                       password,
                       pbeParameters));
        }