Перечень доступа Clojure, определенный внутри Java-класса - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь использовать библиотеку argon-jvm для хэширования в моем приложении.

По умолчанию эта библиотека использует Argon2i, однако я бы хотел использовать Argon2id. Для этого мне нужно передать значение enum Argon2Factory.Argon2Types.Argon2id перегруженному методу create в классе Argon2Factory. Исходный код Argon2Factory.java здесь .

Из lein repl (после добавления [de.mkammerer/argon2-jvm "2.4"] в качестве зависимости) я могу сделать следующее:

user=> (import 'de.mkammerer.argon2.Argon2Factory)
de.mkammerer.argon2.Argon2Factory
user=> (def argon2 (Argon2Factory/create))
#'user/argon2
user=> (def hashedPassword (.hash argon2 17 65536 1 "passwordToBeHashed"))
#'user/hashedPassword
user=> hashedPassword
"$argon2i$v=19$m=65536,t=17,p=1$zvr4dz+/mpNxj5MVMtBALA$8dbE49MKV3dDfMMswTtjlB+niOeryh4EmJWNd7lj3FI"

Однако я не могу получить доступ к значениям перечисления Argon2Types (для передачи методу Argon2Factory.create), определенному внутри самого класса Argon2Factory. Сомоне, пожалуйста, помогите мне получить доступ к этому перечислению?

PS: автозаполнение в репле на разных этапах:

user=> (de.mkammerer.argon2.
de.mkammerer.argon2.Argon2              de.mkammerer.argon2.Argon2Advanced      de.mkammerer.argon2.Argon2Constants     de.mkammerer.argon2.Argon2Factory
de.mkammerer.argon2.Argon2Helper        de.mkammerer.argon2.Argon2d             de.mkammerer.argon2.Argon2i             de.mkammerer.argon2.Argon2id
de.mkammerer.argon2.BaseArgon2          de.mkammerer.argon2.jna.Argon2Library   de.mkammerer.argon2.jna.Argon2_type     de.mkammerer.argon2.jna.JnaUint32
de.mkammerer.argon2.jna.Size_t
user=> (de.mkammerer.argon2.Argon2Factory/create
de.mkammerer.argon2.Argon2Factory/create           de.mkammerer.argon2.Argon2Factory/createAdvanced

PPS: Я отправлю запрос на извлечение в этот проект с перечислением Argon2Types, определенным в его собственном файле .java, но пока я хотел бы знать, возможен ли доступ к таким перечислениям)

1 Ответ

0 голосов
/ 05 мая 2018

В REPL попробуйте:

(import 'de.mkammerer.argon2.Argon2Factory$Argon2Types)

Это работает для меня.

...