code: func checkPub(pub *PublicKey) error {
  	if pub.N == nil {
  		return errPublicModulus
  	}
  	if pub.E < 2 {
  		return errPublicExponentSmall
  	}
  	if pub.E > 1<<31-1 {
  		return errPublicExponentLarge
  	}
  	return nil
  }
docs: // checkPub sanity checks the public key before we use it.
  // We require pub.E to fit into a 32-bit integer so that we
  // do not have different behavior depending on whether
  // int is 32 or 64 bits. See also
  // http://www.imperialviolet.org/2012/03/16/rsae.html.