Skip to content

Commit 3562554

Browse files
authored
Custom Digest-md5 implementation (#84)
1 parent 18aa506 commit 3562554

File tree

20 files changed

+493
-5798
lines changed

20 files changed

+493
-5798
lines changed

.github/workflows/python-release.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
container: quay.io/pypa/manylinux2014_${{ matrix.target }}:latest
4141
docker-options: -e LD_LIBRARY_PATH=/opt/rh/llvm-toolset-7.0/root/usr/lib64 -e LLVM_CONFIG_PATH=/opt/rh/llvm-toolset-7.0/root/usr/bin/llvm-config
4242
before-script-linux: |
43-
yum install -y epel-release && yum install -y krb5-devel libgsasl-devel llvm-toolset-7.0-clang llvm-toolset-7.0-llvm-devel
43+
yum install -y epel-release && yum install -y krb5-devel llvm-toolset-7.0-clang llvm-toolset-7.0-llvm-devel
4444
- name: Upload wheels
4545
uses: actions/upload-artifact@v3
4646
with:
@@ -56,7 +56,7 @@ jobs:
5656
- uses: actions/checkout@v4
5757
- name: Install native libs
5858
run:
59-
brew install krb5 gsasl
59+
brew install krb5
6060
- name: Build wheels
6161
uses: PyO3/maturin-action@v1
6262
with:

.github/workflows/python-test.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
java-version: "17"
4646

4747
- name: Install native libs
48-
run: sudo apt-get install -y libkrb5-dev libgsasl-dev krb5-user
48+
run: sudo apt-get install -y libkrb5-dev krb5-user
4949

5050
- name: Download Hadoop
5151
run: |
@@ -87,4 +87,4 @@ jobs:
8787
manylinux: '2014'
8888
docker-options: -e LD_LIBRARY_PATH=/opt/rh/llvm-toolset-7.0/root/usr/lib64 -e LLVM_CONFIG_PATH=/opt/rh/llvm-toolset-7.0/root/usr/bin/llvm-config
8989
before-script-linux: |
90-
yum install -y epel-release && yum install -y krb5-devel libgsasl-devel llvm-toolset-7.0-clang llvm-toolset-7.0-llvm-devel
90+
yum install -y epel-release && yum install -y krb5-devel llvm-toolset-7.0-clang llvm-toolset-7.0-llvm-devel

.github/workflows/rust-test.yml

+7-10
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,22 @@ jobs:
4141
- uses: Swatinem/rust-cache@v2
4242

4343
- name: Install native libs
44-
run: sudo apt-get install -y libkrb5-dev libgsasl-dev
44+
run: sudo apt-get install -y libkrb5-dev
4545

4646
- name: build and lint with clippy
47-
run: cargo clippy --tests --features kerberos,token,integration-test
47+
run: cargo clippy --all-targets --features kerberos,integration-test,benchmark -- -D warnings
4848

4949
- name: Check docs
5050
run: cargo doc
5151

5252
- name: Check no features
53-
run: cargo check
53+
run: cargo check --tests
5454

5555
- name: Check kerberos
56-
run: cargo check --features kerberos
57-
58-
- name: Check token
59-
run: cargo check --features token
56+
run: cargo check --tests --features kerberos
6057

6158
- name: Check all features
62-
run: cargo check --features kerberos,token,integration-test
59+
run: cargo check --all-targets --features kerberos,integration-test,benchmark
6360

6461
test:
6562
strategy:
@@ -93,7 +90,7 @@ jobs:
9390
java-version: "17"
9491

9592
- name: Install native libs
96-
run: sudo apt-get install -y libkrb5-dev libgsasl-dev krb5-user
93+
run: sudo apt-get install -y libkrb5-dev krb5-user
9794

9895
- name: Download Hadoop
9996
run: |
@@ -102,4 +99,4 @@ jobs:
10299
echo "$GITHUB_WORKSPACE/hadoop-3.3.6/bin" >> $GITHUB_PATH
103100
104101
- name: Run tests
105-
run: cargo test --features kerberos,token,integration-test
102+
run: cargo test --features kerberos,integration-test

Cargo.lock

+9-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+5-6
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,20 @@ All other settings are generally assumed to be the defaults currently. For insta
4343

4444
### Mac
4545
```
46-
brew install gsasl krb5
46+
brew install krb5
4747
# You might need these env vars on newer Macs
4848
export BINDGEN_EXTRA_CLANG_ARGS="-I/opt/homebrew/include"
4949
export LIBRARY_PATH=/opt/homebrew/lib
50-
cargo build --features token,kerberos
50+
cargo build --features kerberos
5151
```
5252

5353
### Ubuntu
5454
```
55-
apt-get install clang libkrb5-dev libgsasl-dev
56-
cargo build --features token,kerberos
55+
apt-get install clang libkrb5-dev
56+
cargo build --features kerberos
5757
```
5858

5959
## Crate features
60-
- `token` - enables token based DIGEST-MD5 authentication support. This uses the `gsasl` native library and only supports authentication, not integrity or confidentiality
6160
- `kerberos` - enables kerberos GSSAPI authentication support. This uses the `libgssapi` crate and supports integrity as well as confidentiality
6261

6362
## Object store implementation
@@ -67,7 +66,7 @@ An object_store implementation for HDFS is provided in the [hdfs-native-object-s
6766
The tests are mostly integration tests that utilize a small Java application in `rust/mindifs/` that runs a custom `MiniDFSCluster`. To run the tests, you need to have Java, Maven, Hadoop binaries, and Kerberos tools available and on your path. Any Java version between 8 and 17 should work.
6867

6968
```bash
70-
cargo test -p hdfs-native --features token,kerberos,intergation-test
69+
cargo test -p hdfs-native --features kerberos,intergation-test
7170
```
7271

7372
### Python tests

0 commit comments

Comments
 (0)