Class: LibSSH::Key

Inherits:
Object
  • Object
show all
Defined in:
lib/libssh/key.rb,
ext/libssh_ruby/key.c

Instance Method Summary collapse

Constructor Details

#initializeObject



31
32
33
34
35
36
# File 'ext/libssh_ruby/key.c', line 31

static VALUE m_initialize(VALUE self) {
  KeyHolder *holder;
  TypedData_Get_Struct(self, KeyHolder, &key_type, holder);
  holder->key = ssh_key_new();
  return self;
}

Instance Method Details

#private?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'ext/libssh_ruby/key.c', line 71

static VALUE m_private_p(VALUE self) {
  return ssh_key_is_private(libssh_ruby_key_holder(self)->key) ? Qtrue : Qfalse;
}

#public?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'ext/libssh_ruby/key.c', line 67

static VALUE m_public_p(VALUE self) {
  return ssh_key_is_public(libssh_ruby_key_holder(self)->key) ? Qtrue : Qfalse;
}

#sha1Object



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'ext/libssh_ruby/key.c', line 44

static VALUE m_sha1(VALUE self) {
  KeyHolder *holder;
  unsigned char *c_hash;
  size_t len;
  VALUE hash;

  holder = libssh_ruby_key_holder(self);
  ssh_get_publickey_hash(holder->key, SSH_PUBLICKEY_HASH_SHA1, &c_hash, &len);
  hash = rb_str_new((char *)c_hash, len);
  ssh_clean_pubkey_hash(&c_hash);

  return hash;
}

#sha1_hexObject



5
6
7
# File 'lib/libssh/key.rb', line 5

def sha1_hex
  sha1.unpack('H*')[0].each_char.each_slice(2).map(&:join).join(':')
end

#typeObject



58
59
60
# File 'ext/libssh_ruby/key.c', line 58

static VALUE m_type(VALUE self) {
  return INT2FIX(ssh_key_type(libssh_ruby_key_holder(self)->key));
}

#type_strObject



62
63
64
65
# File 'ext/libssh_ruby/key.c', line 62

static VALUE m_type_str(VALUE self) {
  return rb_str_new_cstr(
      ssh_key_type_to_char(ssh_key_type(libssh_ruby_key_holder(self)->key)));
}