'Return the public key blob for this key. The blob is the
over-the-wire format for public keys.
SECSH-TRANS RFC 4253 Section 6.6.
RSA keys::
string \'ssh-rsa\'
integer e
integer n
DSA keys::
string \'ssh-dss\'
integer p
integer q
integer g
integer y
EC keys::
string \'ecdsa-sha2-[identifier]\'
integer x
integer y
identifier is the standard NIST curve name
@rtype: L{bytes}'

def blob(self):

    type = self.type()
    data = self.data()
    if (type == 'RSA'):
        return ((common.NS('ssh-rsa') + common.MP(data['e'])) + common.MP(data['n']))
    elif (type == 'DSA'):
        return ((((common.NS('ssh-dss') + common.MP(data['p'])) + common.MP(data['q'])) + common.MP(data['g'])) + common.MP(data['y']))
    else:
        byteLength = ((self._keyObject.curve.key_size + 7) // 8)
        return ((common.NS(data['curve']) + common.NS(data['curve'][(-8):])) + common.NS((('\x04' + utils.int_to_bytes(data['x'], byteLength)) + utils.int_to_bytes(data['y'], byteLength))))
