NOTE: We currently put up a dialog box to alert the user. This will go away very soon
MimeCMS_eof (void *crypto_closure, PRBool abort_p){  MimeCMSdata *data = (MimeCMSdata *) crypto_closure;  nsresult rv;  nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1"));  nsCOMPtr<nsIPrompt> prompter;  wwatch->GetNewPrompter(0, getter_AddRefs(prompter));  PR_ASSERT(data && data->output_fn && data->decoder_context);  if (!data || !data->output_fn || !data->decoder_context)	return -1;  /* Hand an EOF to the crypto library.  It may call data->output_fn.	 (Today, the crypto library has no flushing to do, but maybe there	 will be someday.)	 We save away the value returned and will use it later to emit a	 blurb about whether the signature validation was cool.   */  PR_SetError(0, 0);  rv = data->decoder_context->Finish(getter_AddRefs(data->content_info));  if (NS_FAILED(rv)) {	  data->verify_error = PR_GetError();    nsString msg(NS_LITERAL_STRING("Error decrypted message that was encrypted by the sender").get());    prompter->Alert(0, msg.get());  } else {    nsString msg(NS_LITERAL_STRING("Successfully decrypted message that was encrypted by the sender").get());    prompter->Alert(0, msg.get());  }  data->decoder_context = 0;  /* Is the content info encrypted? */  if (data->content_info) {    data->ci_is_encrypted = PR_TRUE;  }  return 0;}