# File lib/dnsruby/resource/DNSKEY.rb, line 352 def dsa_key t = @key[0] t = t.getbyte(0) if t.class == String pgy_len = t * 8 + 64 pos = 1 q = RR::get_num(@key[pos, 20]) pos += 20 p = RR::get_num(@key[pos, pgy_len]) pos += pgy_len g = RR::get_num(@key[pos, pgy_len]) pos += pgy_len y = RR::get_num(@key[pos, pgy_len]) pos += pgy_len @key_length = (pgy_len * 8) pkey = OpenSSL::PKey::DSA.new begin pkey.set_pgq(p,g,q) pkey.set_key(y, nil) # use set_pgq and set_key, present in later versions of openssl gem rescue NoMethodError pkey.p = p # set_key not available in earlier versions, use this approach instead pkey.q = q pkey.g = g pkey.pub_key = y end pkey end