diff options
| author | Alexander Motin <mav@FreeBSD.org> | 2007-05-04 16:20:47 +0000 |
|---|---|---|
| committer | Alexander Motin <mav@FreeBSD.org> | 2007-05-04 16:20:47 +0000 |
| commit | 6370fd6b05f334f1a996810d4a7bff9c39562773 (patch) | |
| tree | b4adf8e588413455e88395fd57837b606404ad49 | |
| parent | adecf751c301df8fd1ab92271dd453326e9dd2e3 (diff) | |
Notes
| -rw-r--r-- | sys/netgraph/ng_mppc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/netgraph/ng_mppc.c b/sys/netgraph/ng_mppc.c index 008c5acdef98..c955c780efe4 100644 --- a/sys/netgraph/ng_mppc.c +++ b/sys/netgraph/ng_mppc.c @@ -545,16 +545,18 @@ ng_mppc_compress(node_p node, struct mbuf *m, struct mbuf **resultp) #ifdef NETGRAPH_MPPC_ENCRYPTION if ((d->cfg.bits & MPPE_BITS) != 0) { - /* Set header bits; need to reset key if we say we did */ + /* Set header bits */ header |= MPPC_FLAG_ENCRYPTED; - if ((header & MPPC_FLAG_FLUSHED) != 0) - rc4_init(&d->rc4, d->key, KEYLEN(d->cfg.bits)); /* Update key if it's time */ if ((d->cfg.bits & MPPE_STATELESS) != 0 || (d->cc & MPPE_UPDATE_MASK) == MPPE_UPDATE_FLAG) { - ng_mppc_updatekey(d->cfg.bits, - d->cfg.startkey, d->key, &d->rc4); + ng_mppc_updatekey(d->cfg.bits, + d->cfg.startkey, d->key, &d->rc4); + } else if ((header & MPPC_FLAG_FLUSHED) != 0) { + /* Need to reset key if we say we did + and ng_mppc_updatekey wasn't called to do it also. */ + rc4_init(&d->rc4, d->key, KEYLEN(d->cfg.bits)); } /* Encrypt packet */ |
