if(pub)
if(pub) {
	bool createFromDER(const char *in, unsigned int len)	{		RSA *r;		void *p;		// private?		p = (void *)in;		r = d2i_RSAPrivateKey(NULL, (const unsigned char **)&p, len);		if(r) {			reset();			// private means both, I think, so separate them			separate(r, &pub, &sec);			return true;		}		else {			// public?			p = (void *)in;			r = d2i_RSAPublicKey(NULL, (const unsigned char **)&p, len);			if(!r) {				// try this other public function, for whatever reason				p = (void *)in;				r = d2i_RSA_PUBKEY(NULL, (unsigned char **)&p, len);			}			if(r) {				if(pub)					RSA_free(pub);				pub = r;				return true;			}		}		return false;	}