기여 목록 / 8505842
device_signals: migrate to crypto/hash APIs
SecurityrefactorMerged
components/device_signals에서 쓰던 crypto/sha2.h의 crypto::SHA256HashString()을 crypto/hash.h의 crypto::hash::Sha256()으로 migration했습니다. 2파일 +6/−4.
문제 설명
- issue url: https://crbug.com/372283556
- //crypto 모듈은
sha2.h,secure_hash.h를 제거하고hash.h로 옮기는 작업을 진행 중입니다. - components/device_signals의 mac, win platform delegate가 인증서 SPKI의 SHA-256 해시를 구할 때 아직
crypto::SHA256HashString()을 사용하고 있었습니다.
해결 내용
mac_platform_delegate.mm,win_platform_delegate.cc의#include "crypto/sha2.h"를#include "crypto/hash.h"로 바꿨습니다.crypto::SHA256HashString()은std::string을 반환하지만crypto::hash::Sha256()은 고정 길이 바이트 배열을 반환합니다. 호출부가 계속std::string을 기대하므로base::as_string_view()로 감싼 뒤std::string으로 변환했습니다.- win 쪽은
base::as_string_view()를 쓰기 위해base/strings/string_view_util.hinclude를 추가했습니다. mac 쪽은 이미 include되어 있었습니다.
- public_keys.hashes.push_back(crypto::SHA256HashString(spki_bytes));
+ public_keys.hashes.push_back(
+ std::string(base::as_string_view(crypto::hash::Sha256(spki_bytes))));- ret.first = crypto::SHA256HashString(spki);
+ ret.first = std::string(base::as_string_view(crypto::hash::Sha256(spki)));리뷰 과정
- 기존 리뷰어가 OOO여서 davidben@에게 리뷰를 요청했습니다.
테스트 방법
- 동작 변경이 없는 API migration이라 새 테스트는 추가하지 않았습니다.
- PS3 CQ dry run 통과.