VirtualBox

Ignore:
Timestamp:
Nov 27, 2023 5:01:59 PM (17 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
160471
Message:

IPRT/crypto/shacrypt: Added RTCrShaCryptGenerateSalt() to avoid code duplication. bugref:10551

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/crypto/shacrypt.cpp

    r102297 r102335  
    4343#include <iprt/types.h>
    4444#include <iprt/mem.h>
     45#include <iprt/rand.h>
    4546#include <iprt/sha.h>
    4647#include <iprt/string.h>
    4748
     49
     50
     51RTR3DECL(int) RTCrShaCryptGenerateSalt(char szSalt[RT_SHACRYPT_MAX_SALT_LEN + 1], size_t cchSalt)
     52{
     53    AssertMsgReturn(cchSalt >= RT_SHACRYPT_MIN_SALT_LEN && cchSalt <= RT_SHACRYPT_MAX_SALT_LEN, ("len=%zu\n", cchSalt),
     54                    VERR_INVALID_PARAMETER);
     55
     56    static const char aRange[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890./";
     57    for (size_t i = 0; i < cchSalt; i++)
     58        szSalt[i] = aRange[RTRandU32Ex(0, sizeof(aRange) - 2)];
     59
     60    szSalt[RT_SHACRYPT_MAX_SALT_LEN] = '\0';
     61    return VINF_SUCCESS;
     62}
    4863
    4964
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette