Commit 22f79347 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

start generating version 1 style introduce cells


svn:r3352
parent 0703d01b
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -93,20 +93,11 @@ rend_client_send_introduction(circuit_t *introcirc, circuit_t *rendcirc) {
  }

  /* write the remaining items into tmp */
#if 0 /* switch over when 0.0.9pre4 is obsolete */
  tmp[0] = 1; /* version 1 of the cell format */
  strncpy(tmp+1, rendcirc->build_state->chosen_exit_name, (MAX_HEX_NICKNAME_LEN+1)); /* nul pads */
  memcpy(tmp+1+MAX_HEX_NICKNAME_LEN+1, rendcirc->rend_cookie, REND_COOKIE_LEN);
#else
  strncpy(tmp, rendcirc->build_state->chosen_exit_name, (MAX_NICKNAME_LEN+1)); /* nul pads */
  memcpy(tmp+MAX_NICKNAME_LEN+1, rendcirc->rend_cookie, REND_COOKIE_LEN);
#endif
  if (crypto_dh_get_public(cpath->handshake_state,
#if 0
                           tmp+1+MAX_HEX_NICKNAME_LEN+1+REND_COOKIE_LEN,
#else
                           tmp+MAX_NICKNAME_LEN+1+REND_COOKIE_LEN,
#endif
                           DH_KEY_LEN)<0) {
    log_fn(LOG_WARN, "Couldn't extract g^x");
    goto err;
@@ -115,11 +106,7 @@ rend_client_send_introduction(circuit_t *introcirc, circuit_t *rendcirc) {
  /*XXX maybe give crypto_pk_public_hybrid_encrypt a max_len arg,
   * to avoid buffer overflows? */
  r = crypto_pk_public_hybrid_encrypt(entry->parsed->pk, payload+DIGEST_LEN, tmp,
#if 0
                           1+MAX_HEX_NICKNAME_LEN+1+REND_COOKIE_LEN+DH_KEY_LEN,
#else
                           MAX_NICKNAME_LEN+1+REND_COOKIE_LEN+DH_KEY_LEN,
#endif
                                      PK_PKCS1_OAEP_PADDING, 0);
  if (r<0) {
    log_fn(LOG_WARN,"hybrid pk encrypt failed.");
+1 −2
Original line number Diff line number Diff line
@@ -123,8 +123,7 @@ rend_mid_introduce(circuit_t *circ, const char *request, size_t request_len)
    goto err;
  }

/* change MAX_NICKNAME_LEN to MAX_HEX_NICKNAME_LEN when 0.0.8.1 and
 * 0.0.9pre3-4 are obsolete. */
  /* change to MAX_HEX_NICKNAME_LEN once 0.0.9.x is obsolete */
  if (request_len < (DIGEST_LEN+(MAX_NICKNAME_LEN+1)+REND_COOKIE_LEN+
                     DH_KEY_LEN+CIPHER_KEY_LEN+PKCS1_OAEP_PADDING_OVERHEAD)) {
    log_fn(LOG_WARN,
+1 −2
Original line number Diff line number Diff line
@@ -422,8 +422,7 @@ rend_service_introduce(circuit_t *circuit, const char *request, size_t request_l
    rp_nickname = buf;
    version = 0;
  }
  /* XXX when 0.0.8.1 and 0.0.9pre3-4 are obsolete, change this to
   * reject version != 1. */
  /* XXX when 0.0.9.x is obsolete, change this to reject version != 1. */
  ptr=memchr(rp_nickname,0,nickname_field_len);
  if (!ptr || ptr == rp_nickname) {
    log_fn(LOG_WARN, "Couldn't find a null-padded nickname in INTRODUCE2 cell");