From ddd4e85a8b5d823b017d5f8490c8df5d8bdbdc86 Mon Sep 17 00:00:00 2001 From: Samuel Bushi Date: Mon, 25 Apr 2022 10:16:50 -0400 Subject: [PATCH] Add Argon2 Java snippet --- .../snippets/FirebaseAuthSnippets.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/test/java/com/google/firebase/snippets/FirebaseAuthSnippets.java b/src/test/java/com/google/firebase/snippets/FirebaseAuthSnippets.java index e96170cf9..cd73908da 100644 --- a/src/test/java/com/google/firebase/snippets/FirebaseAuthSnippets.java +++ b/src/test/java/com/google/firebase/snippets/FirebaseAuthSnippets.java @@ -37,6 +37,9 @@ import com.google.firebase.auth.UserRecord; import com.google.firebase.auth.UserRecord.CreateRequest; import com.google.firebase.auth.UserRecord.UpdateRequest; +import com.google.firebase.auth.hash.Argon2; +import com.google.firebase.auth.hash.Argon2.Argon2HashType; +import com.google.firebase.auth.hash.Argon2.Argon2Version; import com.google.firebase.auth.hash.Bcrypt; import com.google.firebase.auth.hash.HmacSha256; import com.google.firebase.auth.hash.Pbkdf2Sha256; @@ -588,6 +591,35 @@ public void importWithScrypt() { // [END import_with_scrypt] } + public void importWithArgon2() { + // [START import_with_argon2] + try { + List users = Collections.singletonList(ImportUserRecord.builder() + .setUid("some-uid") + .setEmail("user@example.com") + .setPasswordHash("password-hash".getBytes()) + .setPasswordSalt("salt".getBytes()) + .build()); + UserImportOptions options = UserImportOptions.withHash( + Argon2.builder() + .setHashLengthBytes(512) + .setHashType(Argon2HashType.ARGON2_ID) + .setParallelism(8) + .setIterations(16) + .setMemoryCostKib(2048) + .setVersion(Argon2Version.VERSION_10) + .setAssociatedData("associated-data".getBytes()) + .build()); + UserImportResult result = FirebaseAuth.getInstance().importUsers(users, options); + for (ErrorInfo indexedError : result.getErrors()) { + System.out.println("Failed to import user: " + indexedError.getReason()); + } + } catch (FirebaseAuthException e) { + System.out.println("Error importing users: " + e.getMessage()); + } + // [END import_with_argon2] + } + public void importWithoutPassword() { // [START import_without_password] try {