Sha256: 58b2479cfbdacb4df05a6508e02b948faa7d6515a5ce075391cb4db2a9cc613f

Contents?: true

Size: 772 Bytes

Versions: 77

Compression:

Stored size: 772 Bytes

Contents

# frozen_string_literal: true

require 'openssl'

module Aws
  module EC2
    class Instance

      # @param [String, Pathname] key_pair_path
      # @return [String]
      def decrypt_windows_password(key_pair_path)
        decoded = Base64.decode64(encrypted_password)
        pem_bytes = File.open(key_pair_path, 'rb') { |f| f.read }
        private_key = OpenSSL::PKey::RSA.new(pem_bytes)
        private_key.private_decrypt(decoded)
      end

      private

      def encrypted_password
        bytes = Aws::Plugins::UserAgent.feature('resource') do
          client.get_password_data(instance_id: id).password_data
        end
        if bytes == ''
          raise 'password not available yet'
        else
          bytes
        end
      end

    end
  end
end

Version data entries

77 entries across 77 versions & 1 rubygems

Version Path
aws-sdk-ec2-1.459.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.455.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.454.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.453.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.452.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.451.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.450.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.449.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.448.1 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.448.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.447.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.446.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.445.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.444.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.443.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.442.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.441.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.440.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.439.0 lib/aws-sdk-ec2/customizations/instance.rb
aws-sdk-ec2-1.438.0 lib/aws-sdk-ec2/customizations/instance.rb