示例#1
0
        public override bool TryExportEncryptedPkcs8PrivateKey(
            ReadOnlySpan <char> password,
            PbeParameters pbeParameters,
            Span <byte> destination,
            out int bytesWritten)
        {
            if (pbeParameters == null)
            {
                throw new ArgumentNullException(nameof(pbeParameters));
            }

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

            if (CngPkcs8.IsPlatformScheme(pbeParameters))
            {
                return(TryExportEncryptedPkcs8(
                           password,
                           pbeParameters.IterationCount,
                           destination,
                           out bytesWritten));
            }

            return(CngPkcs8.TryExportEncryptedPkcs8PrivateKey(
                       this,
                       password,
                       pbeParameters,
                       destination,
                       out bytesWritten));
        }
示例#2
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));
        }