Example #1
0
        public SshKeyProvider(EncodingWrapper encoding, Base64Wrapper base64, IRsaKeyProvider rsaKeyProvider, IDsaKeyProvider dsaKeyProvider, IEcKeyProvider ecKeyProvider, SecureRandomGenerator randomGenerator)
        {
            this.encoding        = encoding;
            this.base64          = base64;
            this.rsaKeyProvider  = rsaKeyProvider;
            this.dsaKeyProvider  = dsaKeyProvider;
            this.ecKeyProvider   = ecKeyProvider;
            this.randomGenerator = randomGenerator;

            sshSupportedCurves = new []
            {
                new [] { "curve25519" },
                new [] { "P-256", "secp256r1", "prime256v1" },
                new [] { "P-384", "secp384r1" },
                new [] { "P-521", "secp521r1" }
            };

            sshCurveHeaders = new Dictionary <string, string>
            {
                { "curve25519", "ssh-ed25519" },
                { "P-256", "ecdsa-sha2-nistp256" },
                { "P-384", "ecdsa-sha2-nistp384" },
                { "P-521", "ecdsa-sha2-nistp521" }
            };

            sshCurveIdentifiers = new Dictionary <string, string>
            {
                { "curve25519", "ed25519" },
                { "P-256", "nistp256" },
                { "P-384", "nistp384" },
                { "P-521", "nistp521" }
            };
        }
Example #2
0
        public void VerifySignatureTestSetup()
        {
            file = new Mock <FileWrapper>();
            file.Setup(f => f.ReadAllBytes(It.IsAny <string>()))
            .Returns <string>(givenFile => files[givenFile]);

            console = new Mock <ConsoleWrapper>();

            Container container = ContainerProvider.GetContainer();

            container.Register <FileWrapper>(() => file.Object);
            container.Register <ConsoleWrapper>(() => console.Object);

            var asymmetricKeyPairGenerator = new AsymmetricKeyPairGenerator(new SecureRandomGenerator());
            var primeMapper     = new Rfc3526PrimeMapper();
            var curveNameMapper = new FieldToCurveNameMapper();

            rsaKeyProvider     = new RsaKeyProvider(asymmetricKeyPairGenerator);
            dsaKeyProvider     = new DsaKeyProvider(asymmetricKeyPairGenerator);
            ecKeyProvider      = new EcKeyProvider(asymmetricKeyPairGenerator, curveNameMapper);
            elGamalKeyProvider = new ElGamalKeyProvider(asymmetricKeyPairGenerator, primeMapper);

            signatureProvider = new SignatureProvider(new SignatureAlgorithmIdentifierMapper(), new SecureRandomGenerator(), new SignerUtilitiesWrapper());
            pkcs8PemFormatter = new Pkcs8PemFormattingProvider(new AsymmetricKeyProvider(new OidToCipherTypeMapper(), new KeyInfoWrapper(), rsaKeyProvider, dsaKeyProvider, ecKeyProvider, elGamalKeyProvider));

            base64   = new Base64Wrapper();
            encoding = new EncodingWrapper();
            random   = new SecureRandomGenerator();
        }
 public SignatureCommandActivationProvider(ICommandExecutor commandExecutor, SignatureCommandProvider signatureCommandProvider, FileCommandProvider fileCommandProvider, EncodingWrapper encoding, Base64Wrapper base64)
 {
     this.commandExecutor          = commandExecutor;
     this.signatureCommandProvider = signatureCommandProvider;
     this.fileCommandProvider      = fileCommandProvider;
     this.encoding = encoding;
     this.base64   = base64;
 }
        public void SetupSshKeyProviderTest()
        {
            encoding         = new EncodingWrapper();
            keyPairGenerator = new AsymmetricKeyPairGenerator(new SecureRandomGenerator());
            ecKeyProvider    = new EcKeyProvider(keyPairGenerator, new FieldToCurveNameMapper());
            provider         = new SshKeyProvider(encoding, new Base64Wrapper(), Mock.Of <IRsaKeyProvider>(), Mock.Of <IDsaKeyProvider>(), ecKeyProvider, new SecureRandomGenerator());

            base64 = new Base64Wrapper();
        }
Example #5
0
        public SshFormattingProvider(ISshKeyProvider sshKeyProvider, EncodingWrapper encoding, Ssh2ContentFormatter ssh2ContentFormatter, OpenSshContentFormatter openSshContentFormatter, Base64Wrapper base64)
        {
            this.sshKeyProvider          = sshKeyProvider;
            this.encoding                = encoding;
            this.ssh2ContentFormatter    = ssh2ContentFormatter;
            this.openSshContentFormatter = openSshContentFormatter;
            this.base64 = base64;

            supportedSshHeaders = new[] { "---- BEGIN SSH2 PUBLIC", "ssh-rsa ", "ssh-dss ", "ssh-ed25519 ", "ecdsa-sha2-nistp256 ", "ecdsa-sha2-nistp384 ", "ecdsa-sha2-nistp521 " };
        }
        public void Setup()
        {
            decoratedCommandHandler = new Mock <ICommandHandler <WriteFileCommand <Signature> > >();
            base64    = new Base64Wrapper();
            decorator = new WriteToFileBase64FormattingDecorator <WriteFileCommand <Signature> >(decoratedCommandHandler.Object, base64, new EncodingWrapper());

            signature = new Signature
            {
                Content = Encoding.Default.GetBytes("foobar")
            };

            command = new WriteFileCommand <Signature>
            {
                Out = signature
            };

            decorator.Execute(command);
        }
            public void SetupGetAsDer()
            {
                var secureRandom = new SecureRandomGenerator();
                var asymmetricKeyPairGenerator = new AsymmetricKeyPairGenerator(secureRandom);
                var rsaKeyProvider             = new RsaKeyProvider(asymmetricKeyPairGenerator);
                var dsaKeyProvider             = new DsaKeyProvider(asymmetricKeyPairGenerator);
                var ecKeyProvier = new EcKeyProvider(asymmetricKeyPairGenerator, new FieldToCurveNameMapper());
                var keyPair      = rsaKeyProvider.CreateKeyPair(1024);
                var key          = keyPair.PublicKey;

                var encoding       = new EncodingWrapper();
                var base64         = new Base64Wrapper();
                var sshKeyProvider = new SshKeyProvider(encoding, base64, rsaKeyProvider, dsaKeyProvider, ecKeyProvier, null);

                var formattingProvider = new SshFormattingProvider(sshKeyProvider, encoding, new Ssh2ContentFormatter(), null, base64);

                ssh2Key    = formattingProvider.GetAsSsh2PublicKey(key, "foo");
                keyContent = sshKeyProvider.GetRsaPublicKeyContent(key);
                openSshKey = formattingProvider.GetAsOpenSshPublicKey(key, "foo");
            }
 public WriteToStdOutBase64FormattingDecorator(ICommandHandler <T> decoratedCommandHandler, Base64Wrapper base64)
 {
     this.decoratedCommandHandler = decoratedCommandHandler;
     this.base64 = base64;
 }
Example #9
0
 public WriteToFileBase64FormattingDecorator(ICommandHandler <T> decoratedCommandHandler, Base64Wrapper base64, EncodingWrapper encoding)
 {
     this.decoratedCommandHandler = decoratedCommandHandler;
     this.base64   = base64;
     this.encoding = encoding;
 }