Lines Matching refs:alg

113 static void free_crypt_alg(struct crypt_alg_s *alg);
146 struct crypt_alg_s *alg; in crypt() local
181 alg = getalgbyname(algname, &found); in crypt()
182 if ((alg == NULL) || !found) { in crypt()
190 ciphertext = alg->a_genhash(ctbuffer, CRYPT_MAXCIPHERTEXTLEN, in crypt()
191 plaintext, salt, (const char **)alg->a_params); in crypt()
195 free_crypt_alg(alg); in crypt()
219 struct crypt_alg_s *alg = NULL; in crypt_gensalt() local
249 alg = getalgbyname(algname, &found); in crypt_gensalt()
250 if (alg == NULL || !found) { in crypt_gensalt()
255 newsalt = alg->a_gensalt(gsbuffer, CRYPT_MAXCIPHERTEXTLEN, in crypt_gensalt()
256 oldsalt, userinfo, (const char **)alg->a_params); in crypt_gensalt()
261 free_crypt_alg(alg); in crypt_gensalt()
490 struct crypt_alg_s *alg = NULL; in getalgbyname() local
597 if ((alg = malloc(sizeof (struct crypt_alg_s))) == NULL) { in getalgbyname()
601 alg->a_libhandle = NULL; in getalgbyname()
602 alg->a_genhash = NULL; in getalgbyname()
603 alg->a_gensalt = NULL; in getalgbyname()
604 alg->a_params = NULL; in getalgbyname()
605 alg->a_nparams = 0; in getalgbyname()
613 if ((alg->a_libhandle = dlopen(pathname, RTLD_NOW)) == NULL) { in getalgbyname()
621 alg->a_genhash = in getalgbyname()
622 (char *(*)())dlsym(alg->a_libhandle, "crypt_genhash_impl"); in getalgbyname()
623 if (alg->a_genhash == NULL) { in getalgbyname()
630 alg->a_gensalt = in getalgbyname()
631 (char *(*)())dlsym(alg->a_libhandle, "crypt_gensalt_impl"); in getalgbyname()
632 if (alg->a_gensalt == NULL) { in getalgbyname()
661 alg->a_params = calloc(nparams + 1, sizeof (char *)); in getalgbyname()
662 if (alg->a_params == NULL) { in getalgbyname()
668 alg->a_params[alg->a_nparams++] = token; in getalgbyname()
674 free_crypt_alg(alg); in getalgbyname()
675 alg = NULL; in getalgbyname()
688 return (alg); in getalgbyname()
692 free_crypt_alg(struct crypt_alg_s *alg) in free_crypt_alg() argument
694 if (alg == NULL) in free_crypt_alg()
697 if (alg->a_libhandle != NULL) { in free_crypt_alg()
698 (void) dlclose(alg->a_libhandle); in free_crypt_alg()
700 free(alg->a_params); in free_crypt_alg()
701 free(alg); in free_crypt_alg()