bitvec has known soundness issues under Miri and does not seem to pass with either Stacked Borrows or Tree Borrows. It also seems there are some miscompliation issues as well. I brought up its usage in cryptographic contexts in some opsem discussions around some of these issues and it made people seem worried.
FWIW I wrote a crate implementing some bitvec-like reference types which passes Miri under Tree Borrows (but not Stacked Borrows, where it has one of the same problems as bitvec) and has 100% code coverage. However even passing TB but not SB was still concerning to some for use in cryptographic contexts which I understand and sympathize with.
Anyway, I bring this up regarding #155, mostly to note that while I like the general direction of using types that can work at the bit-level for implementing scalar multiplication, I hope that doesn't necessitate requiring bitvec as a dependency to make wnaf work.
bitvechas known soundness issues under Miri and does not seem to pass with either Stacked Borrows or Tree Borrows. It also seems there are some miscompliation issues as well. I brought up its usage in cryptographic contexts in some opsem discussions around some of these issues and it made people seem worried.FWIW I wrote a crate implementing some
bitvec-like reference types which passes Miri under Tree Borrows (but not Stacked Borrows, where it has one of the same problems asbitvec) and has 100% code coverage. However even passing TB but not SB was still concerning to some for use in cryptographic contexts which I understand and sympathize with.Anyway, I bring this up regarding #155, mostly to note that while I like the general direction of using types that can work at the bit-level for implementing scalar multiplication, I hope that doesn't necessitate requiring
bitvecas a dependency to makewnafwork.