# 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