PORT_Assert(key->keyType == rsaKey); if (key->keyType != rsaKey)
PORT_Assert(key->keyType == lowRSAKey); if (key->keyType != lowRSAKey)
RSA_Sign(SECKEYLowPrivateKey *key,          unsigned char *      output, 	 unsigned int *       output_len,         unsigned int         maxOutputLen, 	 unsigned char *      input, 	 unsigned int         input_len){    SECStatus     rv          = SECSuccess;    unsigned int  modulus_len = SECKEY_LowPrivateModulusLen(key);    SECItem       formatted;    SECItem       unformatted;    if (maxOutputLen < modulus_len)     	return SECFailure;    PORT_Assert(key->keyType == rsaKey);    if (key->keyType != rsaKey)    	return SECFailure;    unformatted.len  = input_len;    unformatted.data = input;    formatted.data   = NULL;    rv = RSA_FormatBlock(&formatted, modulus_len, RSA_BlockPrivate,			 &unformatted);    if (rv != SECSuccess)     	goto done;    rv = RSA_PrivateKeyOp(&key->u.rsa, output, formatted.data);    *output_len = modulus_len;    goto done;done:    if (formatted.data != NULL)     	PORT_ZFree(formatted.data, modulus_len);    return rv;}