๋ชฉํ: ์ ์ฒด/Desktop .NET Framework์ ์๋ฒฝํ๊ฒ ํธํ๋๋ API ์ ๊ณต(์ด ์์ ์ ์ผ๋ถ๋ก ๋ณ๊ฒฝ ์ฌํญ ์์ - ์คํธ๋ ์ดํธ ํฌํธ๋ง ํด๋น)
๊ณํ:
์ฝ๋ ๋ณ๊ฒฝ ๊ท์น: .NET Framework๋ฅผ ๋น๋ํ๊ณ (์ ์ฒด) .NET Framework์ ํธํ๋๋๋ก ํ๋ ๋ฐ ์ ๋์ ์ผ๋ก ํ์ํ ์ฝ๋ ๋ณ๊ฒฝ๋ง ํ์ฉ๋๋ฉฐ ์ถ๊ฐ ๋ฒ๊ทธ ์์ ์ด๋ ์ํคํ
์ฒ ๋ณ๊ฒฝ์ ํ์ฉ๋์ง ์์ต๋๋ค. ์ด๋ฌํ PR์ ์ง๊ธ ๊ฑฐ๋ถ๋ฉ๋๋ค.
๊ทธ๋ฌํ ๋ณ๊ฒฝ์ ์ด๊ธฐ ํฌํธ๊ฐ ์๋ฃ๋ ํ, ์ข์ ํ
์คํธ ๋ฒ ๋๊ฐ ์๊ณ ๊ทธ๋ฌํ ๋ณ๊ฒฝ์ ๊ฒ์ฆํ ์ ์์ ๋ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
์ด๋ค ์ด์ ๋ก ๋ ํฐ ์ฝ๋/์ํคํ ์ฒ ๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ ์์ ์ ์ํ/PR ์ ์ถํ๊ธฐ ์ ์ ๋จผ์ ์ฌ๊ธฐ์์ ๋ ผ์ํด์ผ ํฉ๋๋ค.
๊ณํ์ ์ผ๋ถ๋ฅผ ์์ ํ๋ ๊ฒฝ์ฐ ์ค๋ณต ์์ ์ ํผํ๊ธฐ ์ํด ํ ๋ก ์์ ๊ทธ๋ ๊ฒ ๋งํ์ญ์์ค. ์ฐ๋ฆฌ( @steveharter @karelz)๊ฐ ๊ทํ์๊ฒ ๋ฌธ์ ๋ฅผ ๊ณต๋ ํ ๋นํ ๊ฒ์ ๋๋ค.
XML์ ๋์งํธ ์๋ช ํ๋ ํด๋์ค๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
Tratcher์์ ์ฐธ์กฐํ ๋๋ก ์ด๊ฒ์ ASP.NET 5์์ WsFederation/ADFS์ ๋ํ ์ง์์ ์ถ๊ฐํ๊ธฐ ์ํ ์ฐจ๋จ๊ธฐ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ง์ ์ํฐํ๋ผ์ด์ฆ ASP.NET 4 ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด ADFS๋ฅผ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ASP.NET 5๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ WsFederation์ ์ฌ์ฉํ๋ ๋ฐ ๋งค์ฐ ๊ด์ฌ์ด ์์ต๋๋ค.
@rschiefer @Tratcher ๊ธ์์... ๋ณต์กํฉ๋๋ค.
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ ์์๊ป๋ผ๊ฐ ๋จ์ต๋๋ค.
@terrajobst - ์ฐธ๊ณ ๋ก
๋ถ๋ช ํ ๋๋ โโ์ค๋ ์์นจ์ ์ฝ๊ฐ ๊ฒ์๋ ๋ค. ์ฃ์กํฉ๋๋ค :).
์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ํด์ผ ํ ์ผ์ด ์๋ค๋ ๊ฒ์ ํ์คํ ํ์ธํ์ง๋ง, ์ฐ๋ฆฌ๋ ์ ๋ต์ด ๊ธฐ์กด System.Security.Cryptography.Xml ์ฝ๋๋ฅผ ์์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋์ , ์ด๊ฒ์ ๋น ๋ฅด๊ณ ๋ ๊ฑฐ์ ๊ฐ์ฒด ๋ชจ๋ธ(์: XmlDocument)์ ์ฐ๊ฒฐ๋์ง ์์ XmlDSig์ ๋ํ ๋ฒ์ฉ ๊ตฌํ์ ์์ง๋์ด๋งํ๊ธฐ ์ํ ๋ฐฑ๋ก๊ทธ์ ํญ๋ชฉ์ ๋ํ๋ ๋๋ค.
๊ทธ ๋ ธ๋ ฅ์ .NET Core 1.0์ ๋ํด ์ํํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ ๊ฒ์ด ์๋๋๋ค. ๋จ์ํ ๋ค๋ฅธ ์ผ์ ์ง์คํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ฝ๋ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์ํฅ์ ๋ฐ์์์ ์๋ ค์ฃผ์๋ฉด ์ง์์ ์ธ ์ฐ์ ์์ ์ง์ ์ ๋์์ด ๋ฉ๋๋ค.
https://github.com/KentorIT/authservices๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ASP.NET Core SAML2 ๋ฏธ๋ค์จ์ด๋ฅผ ๋ง๋ค๋ ค๊ณ
๋๋ ๊ธฐ์กด ๊ฒ์ ์ด์ํ์ง ์๋ ๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๋ ๋ฐ ํ์คํ ๋์ํฉ๋๋ค. XmlReader API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฌด์์ด๋ ํ ์ ์์ต๋๊น? ๊ทธ๋ ๊ฒ ํ๋ฉด XDocument์ XmlDocument๋ฅผ ๋ชจ๋ ์ง์ํ ์ ์์ต๋๋ค. ๋ํ System.IdentityModel์์ ์ฌ์ฉ๋๋ ์๋ฒจ๋กํ ํ๋ ๊ธฐ์ ๊ตฌํ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค(๊ณต๋ฐฑ์ด ์๋ XML ํ์ผ์ ์ง์ํ๋๋ก ๊ฐ์ ๋๋ค๋ฉด...)
@AndersAbel XmlReader๊ฐ ๋ด๊ฐ ์์ํ ๊ณณ์ ๋๋ค(XML ์ฌ์ฉ์๊ฐ ๋ ๋์ ๊ฒ์ด ์๋ค๊ณ ๋งํ์ง ์๋ ํ).
XmlReader๋ System.IdentityModel ๋ณํ์ ๊ธฐ๋ฐ์ด ๋๋ฏ๋ก ์ํํ ์ ์์ด์ผ ํฉ๋๋ค. :).
@bartonjs System.IdentityModel ๋ณํ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ณํ์ด ๋งค์ฐ ์ ํ์ ์ ๋๋ค. SAML2/WS-Fed ์์ ์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง ์ผ๋ฐ์ ์ธ API๋ก์ ์ค์ฒฉ๋ ์๋ช ์ด ํฌํจ๋ xml ๋ฐ ๋น-์๋ฒจ๋กํ ์๋ช (์: ์๋ช ๋ ์ฃผ์ฅ์ ํฌํจํ๋ ์๋ช ๋ saml ์๋ต)์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ ๋ System.IdentityModel.EnvelopedSignatureReader๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฑฐ๊ธฐ์ ํ ์์๋ ๋ง์ ์ฌ๋ฏธ๊ฐ ์์ต๋๋ค. ์๊ฐ์ด ์๋ค๋ฉด ์์ ํ๊ณ ์ถ์ต๋๋ค.
๋๋ ๋ค์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ณด๋ ๋ฐ ๋์์ด ๋๋ @bartonjs ์ ํก์ค์์ค์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
ํ์ฌ ์ฐ๋ฆฌ ํ์ฌ๋ ์ด๊ฒ์ ์ํฅ์ ๋ฐ๊ณ ์์ต๋๋ค. ์๋ช ๋ XML ๋ผ์ด์ ์ค ํ์ผ์ ์์ฑํ๋ .NET Core๋ก ์ด์ํ๋ ค๋ ์ผ๋ถ ๋ ๊ฑฐ์ ์ฝ๋๊ฐ ์์ผ๋ฉฐ ์ด ํด๋์ค ์งํฉ์ด ์์ผ๋ฉด ๋ฉ์ถฅ๋๋ค. ์ฐ๋ฆฌ๋ ๋ผ์ด์ ์ค์ ๊ธฐ๋ฐ์ผ๋ก XML ํ์ผ์ ๋ค์ํํ ์ ์์ง๋ง ํ์ฌ๋ก์๋ ์ฐ๋ฆฌ์ ์๊ตฌ์ ๋ง๋ ์ข์ ์๋ฃจ์ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
์์ผ๋ก ์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ด (๊ทธ๋ฆฌ๊ณ ์ฝ๊ฐ ๊ด๋ จ๋ XML ์ํธํ๋) ์ฐ๋ฆฌ์ ๊ด๋ จ์ด ์์์ ์ฆ๋ช ํ ์ ์์ต๋๋ค. .NET Framework์ ๊ธฐ์กด ํ์์ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค. ์ ๊ด์ ์์๋ ์ฌ๊ธฐ์ ํ์ ์ด ํ์ํ์ง ์์ต๋๋ค. ๋ณต์ฌ ๋ฐ ๋ถ์ฌ๋ฃ๊ธฐ ๊ตฌํ์ ๋งค์ฐ ํ์ํฉ๋๋ค!
ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@sandersaares๋ ์ง๋ฌธํ ๋ด์ฉ์ ์๊ณ ์ถ์ต๋๋ค. ์ง๊ธ CoreFX์์ xml์ ์๋ช ํ๋ ๋ฐฉ๋ฒ์ด ๋ด์ฅ๋์ด ์์ง ์์ต๋๊น?
@sandersaares / @af0l : .NET Core 1.0์ ๊ฒฝ์ฐ SignedXml/XmlDSig์ ๋ด์ฅ ๊ตฌํ์ด ์์ต๋๋ค.
์ฌ๊ธฐ(๋ฐ ๊ธฐํ)์ ์๊ฒฌ์ ๊ธฐ๋ฐ์ผ๋ก ์ฐ๋ฆฌ๋ ์๋ง๋ ์ด์ API๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ 1.0์์ ์ด๋ฅผ ์คํํ ์๊ฐ์ด ์์์ต๋๋ค.
@bartonjs์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ Core์์ ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ฅผ ์๋์ํค์ง ๋ชปํ ์ด์ ์ผ ๊ฒ์ ๋๋ค. :) ๋ํ ์์ผ๋ก ๋์๊ฐ๊ณ ์ถ์ง๋ง ์๋ฃ๋ ๋๊น์ง ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋ถ๋๋ฝ์ต๋๋ค. ์๋ช ๋ xml์ ์ฌ์ฉํ์ฌ ์ธ๋ฌด ๋น๊ตญ์ ๋ชจ๋ ์ง๋ถ์ ๋ณด๊ณ ํด์ผ ํฉ๋๋ค.
์ด์ ๋ํ ์ง์ ์ด ์์ต๋๊น? ์ด ๊ธฐ๋ฅ์ด ํ์ํ SAML ํ ํฐ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ๋งํ์ต๋๋ค. ๊ฐ์ฌ ํด์
์, ๊ทธ๊ฒ๋ ์๊ณ ๊ฑฐ์ง๋ง์ ํ ๊ฒ์ ๋๋ค. ๊ฒฐ๊ตญ ์๋ช ์ด ํ์ํ ๊ธฐ๋ฅ์ ์ถ์ถํ์ฌ ๋ณ๋์ ์น API ์๋ฃจ์ ์ ๋ฃ์์ต๋๋ค...
๊ตฌํ๋ ๋ฒ์ ๋๋ ์๋ฃจ์ ์ ๋ํ ์์ด๋์ด๊ฐ ์ด๋ฏธ ์์ต๋๋ค.
์ด ์์ ์์ ๊ฐ์ฅ ๊ฐ๋จํ ๋๋ต์ ๊ธฐ์กด .NET Framework ๊ตฌํ์ .NET Core๋ก ์ด์ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๋ค๋ฅธ "ํฌํ ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋๋" API ์๋ต๊ณผ ํจ๊ป ๋ฒํทํ ํ๊ณ ์์ต๋๋ค.
์ฃผ์ ์ ๊ด๋ จ์ด ์์ ์ ์์: https://connect.microsoft.com/VisualStudio/feedback/details/3002812/xmldsigc14ntransform-incorrectly-strips-whitespace-and-does-it-inconsistently ๋ฐ https://github.com/sandersaares/ xml-c14n-๊ณต๋ฐฑ-๊ฒฐํจ. Canonical XML 1.0์ .NET Framework ๊ตฌํ์ด ์๋ชป๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด๊ฐ ํ๋ ธ์ผ๋ฉด ์ข๊ฒ ์ง๋ง, ๊ทธ๋ ๋ค๋ฉด ์ด๊ฒ์ ๋ช ๊ฐ์ง ํธ์ด ๋ง์ ํธํ์ฑ ์ง๋ฌธ์ ์๊ฐํ ์ ์์ต๋๋ค.
@sandersaares ์ํ์ ๋ณด๊ณ ๊ณต๋ฐฑ์ด ํฌํจ๋ ๊ฒฝ์ฐ Xml์ ์ฝ์ ๋ XmlDocument.PreserveWhiteSpace = true
๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
@AndersAbel ํํธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์ด๋ ์ํฉ์ ๋ณ๊ฒฝํ๊ณ ์ค์ ๋ก XML ์คํค๋ง๊ฐ ์๋ ๊ฒฝ์ฐ ์ผ์นํ๋ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. XML ์คํค๋ง๊ฐ ์์ผ๋ฉด ๋์์ด ์ ํจํ์ง ์์ ์ํ๋ก ์ ์ง๋ฉ๋๋ค(์๋กญ๊ณ ํฅ๋ฏธ๋ก์ด ๋ฐฉ์์ผ๋ก). ๊ทธ์ ๋ฐ๋ผ Connect ๋ฌธ์ ์ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค.
@bartonjs ๊ธฐ์กด .NET ํ๋ ์์ํฌ ์๋ฃจ์ ์ ํฌํ ํ๋ ๊ฒฝ์ฐ ๋ค์ค ์๋ช ํ์ธ์ ๋ฐฉํดํ๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ญ์์ค: https://connect.microsoft.com/VisualStudio/Feedback/Details/2288620
์ฐธ๊ณ ๋ก ์ด๊ฒ์ด ๊ตฌํ ๋จ๊ณ์ ๋๋ฌํ๋ฉด .NET Framework์์ XML ์๋ช (์๋ช ๋ฐ ํ์ธ ๋ชจ๋) ๋ฐ ๊ธฐํ XML ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ํ ์คํธ์ ํจ๊ป ์๋ก ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค. ์ข ์์ฑ์ด ์๋ ์ค์ ๋ฅผ ์ป๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค. - ๊ตฌํ์ ์๋ํ๋ ์ธ๊ณ ์ฝ๋: https://github.com/Axinom/cpix
์ด API์ ๊ฐ๋ฐ ์ผ์ ์ด ์์ต๋๊น?
//cc @bartonjs
@henkmollema ํน๋ณํ ๊ฒ์ ์์ต๋๋ค. 1.2 ๋ฆด๋ฆฌ์ค์ ๊ฒฝ์ฐ .NET Framework์ .NET Core ๊ฐ์ ๊ฒฉ์ฐจ๋ฅผ ์ค์ด๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ ธ๋ ฅ์ ํ์ฌ SignedXml์ ์ถ์ฒ์ ๋๋ค.
์ ๋ ์ค๋ ASP.NET Core(KentorIT์ ๊ตฌํ์ ์ฌ์ฉํจ)์์ SAML2-P ์ง์์ด ํ์ํ ๊ณ ๊ฐ๊ณผ ํตํํ์ต๋๋ค. ์ด๊ฒ์ ASP.NET Core๋ก ์ด๋ํ๋ ค๋ ๊ณ ๊ฐ์ ์ฐจ๋จ ๋ฌธ์ ์ ๋๋ค. ์ง๊ธ์ ๊ณ ๊ฐ์ด Katana์ ๋จธ๋ฌผ๋ฌ์ผ ํฉ๋๋ค.
์ด์ ํ๊ฐ 1.2์์ Future(@bartonjs์ ์ํด)๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ๋ด ๋๋ค. ์๊ฒฌ์ ์ ์ํ๊ฑฐ๋ ์์ธํ ์ค๋ช ํ ์ ์์ต๋๊น?
์ฃผ๋ก ์ด์ ํ๋ฅผ ์ถ์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ "์ด๊ฒ์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค"๋ผ๋ ๋ง์ ๋ ๋ง์ด ํ๋ค๊ฐ ์ด์ ํ๊ฐ ๋๋๋ฉด ์๋ฃ๋์ง ์์ ๋ชจ๋ ๊ฒ์ ๋ค์ ํ ๋นํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด์ "์ด ์ด์ ํ์ ํ์ํ ๊ฒฝ์ฐ ์ฌํ ๋น๋๋ ๊ฒฝ์ฐ๋ ๋งค์ฐ ๋๋ฌผ ๊ฒ์ ๋๋ค"๋ผ๊ณ ๋งํ๊ธฐ ์ํด ์ด์ฌํ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ด๊ฒ์ 1.2 ์ด์ ํ์ ๋ํ ๋ค๋ฅธ ๋ง์ ์์ ์ ๋ค์ด์คํธ๋ฆผ์ด๋ฉฐ (์ด์จ๋ ๋์๊ฒ) 1.2๋ก ๋ง๋๋ ๊ฒ์ ํญ์ ์ฝ๊ฐ์ ์คํธ๋ ์นญ์ด์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ ํ โโ์ฐ๋ฆฌ์ "์ฐจ๊ธฐ์" ๋ชฉ๋ก์์ ๊ฝค ๋์ ์์์ ์์ผ๋ฉฐ, 1.2 ๋ฆด๋ฆฌ์ค(์ฃผ๋ก netstandard2.0 ์์ , ๋ฒ๊ทธ ์์ ๋ฐ ๋ช ๊ฐ์ง ์ธํ๋ผ ํ๋ก์ ํธ)์ ์ผ๋ถ๊ฐ ๋๊ธฐ๋ฅผ '์ฝ์'ํ์ง ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ฏธ๋๋ก ํ์ํ๋ค๊ณ ํด์ ๊ทธ๊ฒ์ด 1.2 ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ ๊ฐ ๋์ง ์์ ๊ฒ์ด๋ผ๋ ๋ณด์ฅ
@karelz ์ถ๊ฐ(๋๋ ์์ )ํ๊ณ ์ถ์ ๊ฒ์ด ์์ผ๋ฉด ์ธ์ ๋ ์ง ํ์ํฉ๋๋ค.
์ฐ๋ฆฌ๋ 1.2์๊ฐ ์์ ์์
์๊ธ์ ์กฐ๋ฌํ ์ ์์ ๊ฒ์
๋๋ค(๋ง๋ฌด๋ฆฌํ๊ธฐ์๋ ์ํฅ๋ ฅ์ด ๋ ํฐ ๋ค๋ฅธ ๊ฒ๋ค์ด ๋๋ฌด ๋ง์ต๋๋ค). ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ์ ๊ณํ์ ์ ๋ฌํ๊ธฐ ์ํด ์ด๋ฅผ Future ๋ง์ผ์คํค์ผ๋ก ์ฎ๊ฒผ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ง๋ฌธ์ ์๋ฅผ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ณด์ ์์ญ ๋ฐฑ๋ก๊ทธ์์ ๋์ต๋๋ค. ๋ํ ์ผ๋ฐ์ ์ผ๋ก (DirectoryServices, SerialPort ๋ฑ) corefx์์ ๋๋ฝ๋ API๊ฐ ๊ฐ์ฅ ๋ง์ด ์์ฒญ๋๋ ํญ๋ชฉ ์ค ํ๋์
๋๋ค.
์ฐธ์กฐ: @steveharter @danmosemsft @terrajobst
์ฐ๋ฆฌ์ ๋๋ต์ ๊ต์ฐจํ์ต๋๋ค :)
Milestones์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฌธ์ ๊ฐ์ด๋ ์ ์์ต๋๋ค.
.NET Framework ์ฝ๋๋ ์ฐธ์กฐ ์์ค ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ธฐ์ ์ ์ผ๋ก ๋งํ๋ฉด .NET Core ํ ์ธ๋ถ์์๋ ํฌํธ๋ฅผ ์์ํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ๋์์ ์ํ๋ ์ฌ๋๋ค์ด ์๋ ๊ฒฝ์ฐ์
๋๋ค.
@bartonjs ์์ ์ด์ ์ฑํ
์์ ์ ๋ "๋์ "์ ํต์ฌ์ด ํ
์คํธ ์์ฑ/ํฌํ
์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์ค์ ์ํฉ์ ์ด๋ป์ต๋๊น?
@ Jaedson33 '๋ฌธ์ '๊ฐ ๋ฌด์์ ์๋ฏธํฉ๋๊น? ์ธ์ ์์ ๋ ๊ฒ์ธ์ง๋ฅผ ์๋ฏธํ๋ ๊ฒฝ์ฐ -- ์ง๋ ์ฃผ ๋ต๋ณ์ ์ฐธ์กฐํ์ญ์์ค.
@karelz ํ์ง๋ง ๊ธฐ๋ค๋ฆฌ๊ณ ์ถ์ง ์์ต๋๋ค. ์ ์ง๊ธ ์์ ํ์ง ์์ต๋๊น?
@Jaedson33 ์์ ๋ด ๋ต์ฅ์ ์ฐธ์กฐํ์ญ์์ค. ์ง๊ธ ์๊ธ์ ์กฐ๋ฌํ ์ ์๋ ์ด์ ๋ฅผ ์ค๋ช ํฉ๋๋ค. ์ฐ์ ์์์ ๊ดํ ๊ฒ์ ๋๋ค. ์ง๊ธ์ ๋ง์ ๊ธฐ๋ฅ/API๋ฅผ ์ํ๋ ์ฌ๋๋ค์ด ์ค์ง์ด ์๋๋ฐ, ์ฐ๋ฆฌ๋ ๋ฌดํํ ๊ท๋ชจ์ ํ์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ์ ์์๋ฅผ ๋์ด์ผ ํฉ๋๋ค.
์ ๋ง ๋นจ๋ฆฌ ํ์ํ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ์ฝ๋ ๊ธฐ๋ฐ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค. ์๋ด, ์ฝ๋ ๊ฒํ ๋ฐ ํผ๋๋ฐฑ์ ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
์๊ฒ ์ต๋๋ค. ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค.
@karelz ์์ ์ ํ์ธํ๊ธฐ ์ํด ์๋ ํ ์คํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ฉด ๊ธฐ๊บผ์ด ์์ ๋ด๋ฐ๊ฒ ์ต๋๋ค. :)
(๋ด ๋๋ฃ ์ค ํ ๋ช ๋ ๊ด๋ จ ๊ฒฝํ์ด ์์ผ๋ฏ๋ก ํจ๊ป ์์ ํ ๊ฒ์ ๋๋ค.)
์์ ์ ํต์ฌ ๋ถ๋ถ์ ์ค์ ๋ก ์๋ก์ด ํ ์คํธ ์์ฐ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์ค๋๋ ํ ์คํธ๋ ๋ถ์ถฉ๋ถํ๊ณ ์ปค๋ฒ๋ฆฌ์ง๊ฐ ์ข์ง ์์ต๋๋ค. ์ฌ์์ ๊ฒํ ํ๊ณ ๋ชจ๋ ํฅ๋ฏธ๋ก์ด ์๊ตฌ ์ฌํญ์ ๋ํ ํ ์คํธ๋ฅผ ์ถ๊ฐํ ์ฌ๋์ด ํ์ํฉ๋๋ค. ๋น์ฉ์ ๋๋ถ๋ถ์ด ์ฌ๊ธฐ์ ์์ต๋๋ค.
์ฌ์ ํ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ์ ์ฒด .NET Framework์์ ์์ค ์ฝ๋๋ฅผ ์๋ ๊ทธ๋๋ก ๋๋กญํ ์ ์์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ .NET Core์ ์ผ๋ถ๋ก ๋ฆด๋ฆฌ์ค๋๊ธฐ ์ ์ ๋น๋ํ๊ณ ํ ์คํธ ๋ฒ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ๊ด์ฌ์์ผ์๋ฉด ์๋ ค์ฃผ์ธ์...
์๊ฒ ์ต๋๋ค. ์ฌ์ ํ ๊ด์ฌ์ด ์์ต๋๋ค. :)
@tintoy ์ ๋ ๊ทธ ์์ ์ด ์ ๋ง ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ๋ถ์ ๋๊ณ ์ถ์ต๋๋ค.
@tintoy ์ ๋ ๊ทธ ์์ ์ด ์ ๋ง ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ๋ถ์ ๋๊ณ ์ถ์ต๋๋ค.
๊ทธ๊ฒ์ ๋ฃ๊ณ ๊ธฐ๋ป :)
๊ทธ๋์... ์ด๋ป๊ฒ ๋์๋๋ฆด๊น์?
Obs: GitHub๋ฅผ ์ฒ์ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋์... ์ด๋ป๊ฒ ๋์๋๋ฆด๊น์?
๋จผ์ ๋๋ฃ์ ์ด์ผ๊ธฐ๋ฅผ ๋๋๊ณ ๊ณต๊ฒฉ ๊ณํ์ ์ธ์๋ณด๊ฒ ์ต๋๋ค. @karelz - ๋ค์ด๊ฐ๊ธฐ ์ ์ ์ฝ์ด์ผ ํ ์ง์นจ์ด๋ ๋ค๋ฅธ ๋ฌธ์๊ฐ ์์ต๋๊น? ์ฐ์ , ๋ด ๋๋ฃ๊ฐ ํ์ค์ ๋ฐ์ด๋ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์ฝ๋๊ฐ ์ด๋๋ก ๊ฐ์ผ ํ๋์ง(๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๋ง๋ค๊ธฐ ์ ์ ํ๋ ์์ํฌ์ ๋ค๋ฅธ ๋ถ๋ถ์์ ๊ธฐ์กด ํ ์คํธ๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ์์ ์ ์ดํด๋ณผ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ). ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฌ๋์?
CC: @anthonylangsworth
๋ฒ์๋ฅผ ์ฝ๊ฐ ์ ํ์ ์ผ๋ก ์ ์งํ๋ ค๋ฉด MS16-035์์ ๋นํ์ฑํ๋ ๊ธฐ๋ฅ(xpath ๋ณํ, xslt ๋ณํ, ์ธ๋ถ ์ฐธ์กฐ) ์์ด ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฐํ ์ฌ์ง๊ฐ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง DefaultGetIdElement์ ํ์ฌ ํด๋ฐฑ ๋ฉ์ปค๋์ฆ์ ์๋ช ๋ํ ๊ณต๊ฒฉ์์ ์ ์ฉ๋ ์ ์์ต๋๋ค. ๋ ์์ ํ ๊ธฐ๋ณธ ๋ฒ์ ์ ์ ํธํฉ๋๋ค.
XML ์๋ช ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ ๊ฐ์ง ๊ฐ๋ณ ๊ตฌํ์ ์ฌ์ฉํ๋ ๋์ System.IdentityModel์์ ์ฌ์ฉํ๋ EnvelopedSignatureReader๋ฅผ ์ง์ํ๋๋ก ๋ด๋ถ API๋ฅผ ์ฝ๊ฐ ์ฌ๊ตฌ์ฑํ๋ ๊ฒ๋ ์ข์ ๊ฒ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ด ๋ฒ๊ทธ ๋ณด๊ณ ์์ ๋ฐ๋ผ ๋จ์ผ ์ ์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค.
@tintoy ์ข์ ๋ฌธ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ค๋ฅผ ์ถ๊ฐํด์ผ ์์ ์ ๋ณ๋ ฌํํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. @bartonjs @steveharter @ianhays์ ๋๊ธฐํํ๊ฒ ์ต๋๋ค.
์ ๋ ๋์์ด ๋๋ ์๊ฐ์ ๊ฐ๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. ์ฌ์๊ณผ ์๋ ๋ฐฉ์์ ๋ํ ์ง๋ฌธ์ด ์์ผ๋ฉด ๊ธฐ๊บผ์ด ๊ฒํ ํ๊ฒ ์ต๋๋ค. ์ด๋ฏธ ์ฌ์์ ๊ฒํ ํ๋ ๋ฐ ์๊ฐ์ ๋ณด๋์ต๋๋ค.
SignedXml๊ณผ System.IdentityModel์์ ์ฌ์ฉํ๋ EnvelopedSignatureReader๋ฅผ ํตํฉํ๋ ์์ด๋์ด์ ๋ํด ๋งํ ์ฌ๋์ด ์์ต๋๊น?
@AndersAbel
MS16-035(xpath ๋ณํ, xslt ๋ณํ, ์ธ๋ถ ์ฐธ์กฐ)์ ์ํด ๋นํ์ฑํ๋ ๊ธฐ๋ฅ ์์ด ์์
์์ ํด์ผ ํ๋ ์ต์ .NET Framework ์์ค ์ฝ๋๋ก ์์ํด์ผ ํฉ๋๋ค. .NET Framework ์ฝ๋ ๋ณด์์ ๋ํด ์ฐ๋ ค ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ์คํ๋ผ์ธ์ผ๋ก ์๋ ค์ฃผ์ญ์์ค.
๋ณ๊ฒฝ ์ฌํญ์ ์๋ฐํ ์ฌ์ง๊ฐ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๊ณต๊ฐ์ด ์์ต๋๋ค. .NET Framework์์ ๊ฐ๋จํ ํฌํธ๋ก ์์ํด์ผ ํฉ๋๋ค. ์ถ๊ฐ ๊ฐ์ ์ฌํญ, ๋ณ๊ฒฝ ์ฌํญ, ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ ๋ฑ์ ๋์ค์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ์ด๊ธฐ ์์ ์ ์ผ๋ถ๊ฐ ์๋๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ทธ๊ฒ์ ์ฐ๋ฆฌ ๋จธ๋ฆฌ ์๋ก ์๋ ๊ฒ์ ๋๋ค.
DefaultGetIdElement์ ํ์ฌ ํด๋ฐฑ ๋ฉ์ปค๋์ฆ์ ์๋ช ๋ํ ๊ณต๊ฒฉ์์ ์ ์ฉ๋ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ณ๊ฐ์ ๋ฌธ์ ๋ก ์ทจ๊ธ๋์ด์ผ ํฉ๋๋ค. @bartonjs ์๊ฒฌ์
XML ์๋ช ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ ๊ฐ์ง ๊ฐ๋ณ ๊ตฌํ์ ์ฌ์ฉํ๋ ๋์ System.IdentityModel์์ ์ฌ์ฉํ๋ EnvelopedSignatureReader๋ฅผ ์ง์ํ๋๋ก ๋ด๋ถ API๋ฅผ ์ฝ๊ฐ ์ฌ๊ตฌ์ฑํ๋ ๊ฒ๋ ์ข์ ๊ฒ์ ๋๋ค.
๋ค์ ๋งํ์ง๋ง, ํ ์คํธ ๋ฒ์๊ฐ ์ข์ ์์ ํ ๊ธฐ๋ฅ์ ํฌํธ๋ฅผ ํ๋ณดํ ํ ๋ค์ ๋จ๊ณ๋ก ์งํํด ๋ณด๊ฒ ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ด ๋ฒ๊ทธ ๋ณด๊ณ ์์ ๋ฐ๋ผ ๋จ์ผ ์ ์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค.
GitHub์ ๋ณ๋์ ๋ฌธ์ ๋ก ์ ์ถํ์ธ์. ์ด์์ ์ผ๋ก๋ ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์ด์ํ ํ(์ฆ, ๋ฒ๊ทธ๊ฐ .NET Core์ ์ค์ ๋ก ์ ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ).
SignedXml๊ณผ System.IdentityModel์์ ์ฌ์ฉํ๋ EnvelopedSignatureReader๋ฅผ ํตํฉํ๋ ์์ด๋์ด์ ๋ํด ๋งํ ์ฌ๋์ด ์์ต๋๊น?
๋ค์ ํ ๋ฒ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ํฌํ ํ ๋ค์ ๋จ๊ณ๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
DefaultGetIdElement์ ํ์ฌ ํด๋ฐฑ ๋ฉ์ปค๋์ฆ์ ์๋ช ๋ํ ๊ณต๊ฒฉ์์ ์ ์ฉ๋ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ณ๊ฐ์ ๋ฌธ์ ๋ก ์ทจ๊ธ๋์ด์ผ ํฉ๋๋ค. @bartonjs ์๊ฒฌ์
@AndersAbel ๋ณด์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐ๋๋ฉด https://technet.microsoft.com/en-us/security/ff852094.aspx ์์ ์ทจ์ฝ์ ๋ณด๊ณ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ฅด์ญ์์ค
System.IdentityModel์์ ์ฌ์ฉํ๋ SignedXml๊ณผ EnvelopedSignatureReader๋ฅผ ํตํฉํ๋ ์์ด๋์ด์ ๋ํด ๋งํ ์ฌ๋์ด ์์ต๋๊น?
๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค. SignedXml์ ํ๋ถํ DOM XmlDocument๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋งค์ฐ ๊ฐ๋ ฅํ๊ณ (๊ณต๊ฐ API์) ๊ด๋ จ๋์ด ์์ต๋๋ค. IdentityModel์ ํํ์ XmlReader๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ์กด ๋ฌผ๊ฑด์ ๊ฐ์ ธ์ค๋ฉด ์กฐ์ฌํ ์ ์์ต๋๋ค.
์ ๋ ๋์์ด ๋๋ ์๊ฐ์ ๊ฐ๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. ์ฌ์๊ณผ ์๋ ๋ฐฉ์์ ๋ํ ์ง๋ฌธ์ด ์์ผ๋ฉด ๊ธฐ๊บผ์ด ๊ฒํ ํ๊ฒ ์ต๋๋ค. ์ด๋ฏธ ์ฌ์์ ๊ฒํ ํ๋ ๋ฐ ์๊ฐ์ ๋ณด๋์ต๋๋ค.
@AndersAbel - ๊ฑด๋ฐฐ, ์ฐ๋ฆฌ๊ฐ ๋์์ ์ฌ์ฉํ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค :)
@bartonjs ์ ๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ [email protected]์ ๋ณด๊ณ
@karelz ๋ณ๊ฒฝ ์ฌํญ์ ๊นจ๋จ๋ฆด ์ฌ์ง๊ฐ ์๋ค๋ ์ ์ ์ ๋ฆฌ
MS16-035(xpath ๋ณํ, xslt ๋ณํ, ์ธ๋ถ ์ฐธ์กฐ)์ ์ํด ๋นํ์ฑํ๋ ๊ธฐ๋ฅ ์์ด ์์
์์ ํด์ผ ํ๋ ์ต์ .NET Framework ์์ค ์ฝ๋๋ก ์์ํด์ผ ํฉ๋๋ค. .NET Framework ์ฝ๋ ๋ณด์์ ๋ํด ์ฐ๋ ค ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ์คํ๋ผ์ธ์ผ๋ก ์๋ ค์ฃผ์ญ์์ค.
MS16-035 ํจ์น๋ SignedXml์ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ํ์ง๋ง ๋ ์ง์คํธ๋ฆฌ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ์ง ์์ ์ด์ ๋์์ผ๋ก ๋๋๋ฆด ์ ์์ต๋๋ค. ์ด๋ฌํ ์ต์ ์ .NET Core์๋ ์ด์ํด์ผ ํฉ๋๊น? ์์ ์ ์ ์์ ํ์ฌ ๊ธฐ๋ณธ .NET Framework ๋์์ ์ด์ํ๋ ๋ฐ ์ฐ์ ์์๋ฅผ ๋๊ณ ํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋ ๋ถ๋ถ์ ๋จ๊ฒจ๋๋ ๊ฒ์ ๋๋ค. ์๋๋ฉด ๊ทธ ๋ถ๋ถ๋ค๋ ์ฎ๊ฒจ์ผ ํ๋ ์ค์ํ ๋ถ๋ถ์ด๋ผ๋ ๋ง์์ด์ ๊ฐ์? ๊ทธ๋ฐ ๋ค์ .NET Core AFAIK๊ฐ ๊ตฌ์ฑ์ ์ํด ๋ ์ง์คํธ๋ฆฌ์ ์์กดํ์ง ์์ผ๋ฏ๋ก ๊ตฌ์ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง๋ฌธ์ด ์์ต๋๋ค(๋ชจ๋ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋๋ฏ๋ก).
ํ์ง๋ง ๋ ์ง์คํธ๋ฆฌ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ์ง ์์ ์ด์ ๋์์ผ๋ก ๋๋๋ฆด ์ ์์ต๋๋ค. ์ด๋ฌํ ์ต์ ์ .NET Core์๋ ์ด์ํด์ผ ํฉ๋๊น?
์๋์. ๋ ์ง์คํธ๋ฆฌ ํธํ ์ ์ฉ ์ฝ๋๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๊ธฐ ์ ์ ์ญ์ ๋ฉ๋๋ค.
๊ทธ๊ฒ์ ๊ตฌํํ๊ธฐ ์ํด GitHub์์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@bartonjs , @steveharter ๋ฐ @ianhays์ ๋๊ธฐํํ์ต๋๋ค.
ํธ์ง: ์คํ ๊ณํ์ด ๋งจ ์ ๊ฒ์๋ฌผ๋ก ์ด๋ํ์ต๋๋ค.
๋์๊ฒ ์ข์ ์๋ฆฌ :)
@karelz , @steveharter ๋๋ถ๋ถ์ ๋ ์ง์คํธ๋ฆฌ ์กฐํ๋ Utils ํด๋์ค์ ์์ต๋๋ค: AllowAmbiguousReferenceTargets
, AllowDetachedSignature
, RequireNCNameIdentifier
. ์๋ ค์ง ๋ณํ ๋ชฉ๋ก์ ์ค์ ํ๋ SignedXml ํด๋์ค ์๋ ์กฐํ๊ฐ ์์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ ํธํ์ฑ์ด ์์ผ๋ฉด XmlDsigXPathTransform
๋ฐ XmlDsigXsltTransform
์ก์ธ์คํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ ์ง์คํธ๋ฆฌ ํธํ ์ฝ๋์ ํจ๊ป ์์ค์์ ์์ ํ ์ ๊ฑฐํด์ผ ํฉ๋๊น?
๊ทธ๊ฒ์ด ๋ด๊ฐ ์๋ ๊ฒ์ ๋๋ค. ์ฝ๋๋ฅผ ์ฝ๋ ๋์ ๋ค๋ฅธ ๊ฒ์ ๋ณธ ์ ์ด ์์ง๋ง ๋ญ๊ฐ๋ฅผ ๋์ณค์ ์ ์์ต๋๋ค.
@AndersAbel ๋ ์ง์คํธ๋ฆฌ์ ๊ด๋ จํ์ฌ ์์ Karel์ ์๊ฒฌ์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ์ก์ธ์คํ ์ ์๋ ํด๋์ค๊ฐ ์๋ ๊ฒฝ์ฐ ์์ค๋๋ ๊ธฐ๋ฅ์ ์ดํดํด์ผ ํฉ๋๋ค. ๋น์ ์ด ์ธ๊ธํ ๊ฒ๋ค์ ๋ํด CryptoConfig๋ ์ด๋ฆ:๊ฐ์ฒด ์์ ์ถ๊ฐํด์ผ ํ๋ฏ๋ก ๋ฆ๊ฒ ๋ฐ์ธ๋ฉํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค
์ด ์์ ์ด ์ธ์ ์ค๋น๋ ๊ฒ ๊ฐ์ต๋๊น?
๊ธฐ์ฌ๋ฅผ ์๋ฏธํฉ๋๊น? @steveharter ๋ ์ด๊ธฐ "์์ค ์ถ๊ฐ" PR์ ๊ณง(์๋ง๋ ์ค๋) ์ ์ถํ ๊ณํ์ ๋๋ค.
์ด๊ธฐ ์ฝ๋๊ฐ ๋ฐฉ๊ธ ๋ณํฉ๋์์ต๋๋ค.
@steveharter ๊ฐ์ฌํฉ๋๋ค ๐
@steveharter ๊ฐ์ฌํฉ๋๋ค! ๋ ์ฝ๊ฒ ์งํ ์ํฉ์ ์ถ์ ํ ์ ์๋๋ก ์คํ ๊ณํ์ ์ต์์ ๊ฒ์๋ฌผ๋ก ์ฎ๊ฒผ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ณ๊ฒฝํ ๋๋ง๋ค ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๋ค๋ฅธ ๋ต์ฅ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ธ๊ธํ ๊ฒ์ ๋๋ค.
๋๊ตฐ๊ฐ ์์ ์ ์์ํ๊ณ ์ถ๋ค๋ฉด ์ค๋ณต ์์ ์ ํผํ๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ๋งํ์ญ์์ค. ์ฐ๋ฆฌ๋ ๋น์ ์๊ฒ ๋ฌธ์ ๋ฅผ ๊ณต๋ ํ ๋นํฉ๋๋ค.
@karelz : @tintoy ์ ์ ๋ ์ด๊ฒ์ ์์ํ๊ธฐ ์ํด ์์
๋๊ตฐ๊ฐ ์์ ์ ์์ํ๊ณ ์ถ๋ค๋ฉด ์ค๋ณต ์์ ์ ํผํ๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ๋งํ์ญ์์ค. ์ฐ๋ฆฌ๋ ๋น์ ์๊ฒ ๋ฌธ์ ๋ฅผ ๊ณต๋ ํ ๋นํฉ๋๋ค.
๊ฑด๋ฐฐ - ์ปดํ์ผ์ ์์ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค :)
@anthonylangworth - ํ, ์ ๋ฅผ ์ด๊ฒจ์ฃผ์ธ์!
์ฌ๊ธฐ์์ ์์ ์ด ์งํ ์ค์ ๋๋ค.
@tintoy์ ํ ๋น๋์์ต๋๋ค. @anthonylangsworth ๊ฐ ์ ๋ ์ด๋ฅผ ๊ณต๋ ํ ๋นํ ๊ฒ์ ๋๋ค(GH๋ ๊ทธ๊ฒ ์์ด๋ ์์์ธ ์ต์ ์ ์ ๊ณตํ์ง ์์ต๋๋ค).
๊ฐ์ฌ ํด์!
@karelz ํ์ธ์ ์ํด - ๊ธฐ์ฌ์ ์ง์นจ์ ๋ํด ์ดํดํ ๋ฐ์ ๋ฐ๋ฅด๋ฉด master
์์ ์ด๋ฌํ ๋ณ๊ฒฝ์ ์ํํ ์์ ์
๋๊น?
(๋ด master
๋ถ๋ช
ํ)
์ด, ์ฃ์กํฉ๋๋ค. ๋ค์ ์๋ํ๊ฒ ์ต๋๋ค. ๊ฒฐ๊ตญ PR์ master
์ ๋ฐ๋๋๋ ๊ฒ์
๋๊น?
๋ค, ๋ง์ต๋๋ค. ๋ง์ง๋ง ๋จ๊ณ๊น์ง ์ ์ฒด corefx ๋น๋/ํ ์คํธ ์คํ์ ์ผ๋ถ๋ก ๋ง๋ค์ง ๋ง์ญ์์ค.
src/Common/src/Interop/Windows/Crypt32/Interop.certificates_types.cs ์ ๋ด๋ถ ํด๋์ค๋ก ์ด๋๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๋ช ๊ฐ์ง ์์๋ฅผ ์ฐพ์์ต๋๋ค. ํ์ง๋ง System.Security.Cryptography.Xml
์์๋ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ํ ์๊ฐ์ด ์์ต๋๊น?
๊ทธ ์ค ์ด๋ค ๊ฒ์ด ํ์ํฉ๋๊น? ๊ทธ๋ค ๋ชจ๋?
.NET Fx์์ ๊ณต๊ฐ๋ ๊ฒฝ์ฐ ์ฐธ์กฐ ์์ค๋ฅผ ํ์ธํ ์ ์์ต๋๊น? (๊ทธ๋ ์ง ์๋ค๊ณ ์๊ฐํ์ง๋ง ๋ ๋ฒ ํ์ธํ๋ ๊ฒ์ด ๋์ ๊ฒ์ ์์ต๋๋ค)
๋๋ ์ฐ๋ฆฌ๊ฐ Crypto ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋จธ์ง ๋ถ๋ถ์ ํ์ฉํ๋ ๋์ ํน๋ณํ ์ํธ ์ด์ฉ์ฑ์ ์ํํ๋ค๋ ์ฌ์ค์ ์ฝ๊ฐ ๋๋์ต๋๋ค ... ํน๋ณํ ๊ฒ์ด ํ์ํ๊ฑฐ๋ ์ญ์ฌ์ ์ธ ์ด์ ์์ ... @steveharter @bartonjs ์ด๋ค ์๊ฐ์ด ์์ต๋๊น?
@tintoy ์ด๋ฌํ ๋ ธ๋ ฅ์ผ๋ก ์ํํด์ผ ํ ์์ ์ค ํ๋๋ CAPI์์ ์ง์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ฑฐํ๊ณ .NET API ์ฌ์ฉ์ผ๋ก ์ ํํ๋ ๊ฒ์ ๋๋ค.
@karelz , @bartonjs - ์ฃผ๋ก CryptographicException
์์ฑ์์ ์ ๋ฌ๋๋ CAPI HRESULT ์์์
๋๋ค.
์๋ฅผ ๋ค์ด:
src/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/KeyInfoX509Data.cs(63ํ)
corefx์ ๋ค๋ฅธ ์ฝ๋๊ฐ CryptographicException
์ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์, ์๊ฒ ์ต๋๋ค. HRESULT ์์ฑ์๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ๋จ์ง ๋ฉ์์ง๋ฅผ ๋ฐ๋ ์์ฑ์์ผ ๋ฟ์
๋๋ค. ํด๋น E_xxx
๊ฐ์ ํด๋นํ๋ ๊ธฐ์กด ๋ฉ์์ง ๋ฆฌ์์ค๊ฐ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
๋ค๋ฅธ ๋ฌธ์ ์ ๊ดํด์๋ ์ ํ์ด ๋ ์ด์ ๋จ์ผ ์ด์
๋ธ๋ฆฌ๋ฅผ ๊ณต์ ํ์ง ์๋ ๊ฒฐ๊ณผ์ฒ๋ผ ๋ณด์
๋๋ค. ์๋ฅผ ๋ค์ด X509Utils.DecodeHexString
๋ System.Security.Cryptography.X509Certificates
์์ง๋ง ์ ์ฒด ํ๋ ์์ํฌ์์๋ ์ด๋ฅผ ์ฌ์ฉํ๋ ํด๋์ค์ ํจ๊ป System.Security
์ด์
๋ธ๋ฆฌ์ ์์ต๋๋ค.
๋ชจ๋ ๊ฒ์ด ์ฌ๋ฌ ์ด์ ๋ธ๋ฆฌ๋ก ๋๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ณต์ ๋๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ ํธํ๋ ๋ฉ์ปค๋์ฆ์ ๋ฌด์์ ๋๊น? ์ํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ด์ ๋ธ๋ฆฌ์ ์ฝ๋์์ ํ์ํ ๊ธฐ๋ฅ์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค ์ ์์ต๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ์ฌ ์์ค๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
<Compile Include="$(CommonPath)\Interop\Windows\Crypt32\Interop.certificates_types.cs">
<Link>Interop\Windows\Crypt32\Interop.certificates_types.cs</Link>
</Compile>
์ง๊ธ์ ๋จ์ํ `Interop.certificates_types.cs๋ฅผ ์ด์ ๋ธ๋ฆฌ๋ก ์ปดํ์ผํ๊ณ ๊ฑฐ๊ธฐ์์ ์์๋ฅผ ์ฐธ์กฐํ์ฌ CAPI ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
๋ํ ์ด ์์ ์ ์ํํ๋ corefx์์ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ๋ ์์ํฌ(์ฃผ๋ก 16์ง์ ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ๊ณผ ๊ด๋ จ๋จ)์์ X509Utils.cs์ ์ผ๋ถ ๋ฉ์๋๋ฅผ ๋ณต์ฌํด์ผ ํ์ต๋๋ค.
๋จ์ ์๋ ์ ์ผํ ๋ฌธ์ ๋ src/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/SymmetricKeyWrap.cs(ํนํ 34ํ)์ ์์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
error CA5350: TripleDESKeyWrapEncrypt uses a weak cryptographic algorithm TripleDES
์ง๊ธ์ ์ค๋ฅ๋ฅผ ์ต์ ํ์ต๋๋ค. ์ด์ ๋ชจ๋ ๊ฒ์ด ์ปดํ์ผ๋ฉ๋๋ค. :)
์ข์ต๋๋ค. ํ ์คํธ ํ๋ก์ ํธ๋ฅผ ์ ์ธํ๊ณ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
corefx\Tools\PackageLibs.targets(34,5): error : Could not locate compile assets for any of the frameworks .NETStandard,Version=v1.7
corefx\Tools\PackageLibs.targets(34,5): error : Could not locate runtime assets for any of the frameworks .NETCoreApp,Version=v1.1
๋ด์ผ ํด๊ฒฐํ๊ฒ ์ต๋๋ค.
@karelz @bartonjs ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋ ผ์ํ ์ ์๋๋ก PR์ ์ด
๋์๊ฒ ์ข์ ์๋ฆฌ. @steveharter ์ด๋ค ์๊ฐ์ด ์์ต๋๊น?
์ํด ๋ณต ๋ง์ด ๋ฐ์ผ์ธ์ =D
2๋จ๊ณ๊ฐ ์ธ์ ์๋ฃ๋ ์ง ์ ์ ์๋์?
dotnet/corefx#14662๊ฐ ์ด๋ฏธ ๋ณํฉ๋์์ต๋๋ค. 2๋จ๊ณ์์ต๋๋ค. ๋งจ ์ ๊ฒ์๋ฌผ์ 'checked'๋ก ํ์ํ๊ฒ ์ต๋๋ค.
์์ 5๋จ๊ณ๊ฐ ๋ชจ๋ ์๋ฃ๋๋ฉด ASP.NET Core์์ ws-fed ์ง์์ ๋ฐ์ผ๋ ค๋ฉด AAD ํ์ด SAML ํ ํฐ ๋นํธ๋ฅผ ์ํํด์ผ ํ๊ณ ASP.NET ํ์ ws๋ฅผ ๋น๋ํด์ผ ํฉ๋๋ค. -AAD ์กฐ๊ฐ์ ๋ฏธ๋ค์จ์ด๋ฅผ ๊ณต๊ธํ์ต๋๋ค. ๋น์ ์ ๊ธฐ๋์ ์ผ์นํฉ๋๊น?
์๋์, ์ด ์์
์ WS-Fed์ ์๋ฌด ๊ด๋ จ์ด ์์ต๋๋ค.
https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/500์ ๋ํ ํ์ ๋ฐ ์ค๋ช
์ด ํ์ํฉ๋๋ค.
์ฐธ๊ณ : ๋ต๋ณ ๊ฒ์๋จ: https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/500#issuecomment -275218749
๊ทธ๋ ๋ค๋ฉด 4๋จ๊ณ๋ ์ธ์ ์๋ฃ๋ ๊น์?
.NET ํ์ด ์ธ์ ์๊ฐ์ ๋ผ ์ ์๋์ง ๋ฌป๋๋ค๋ฉด ์ฐ๋ฆฌ๋ ์์ง ๋ชจ๋ฆ ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์ ๋ฐฑ๋ก๊ทธ์์ ๋์ง๋ง ๋จผ์ ํด๊ฒฐํด์ผ ํ ๋ช ๊ฐ์ง ๋ ๋์ ์ฐ์ ์์๊ฐ ์์ต๋๋ค.
๊ทธ ๋์ ์ฐ๋ฆฌ๋ ์ปค๋ฎค๋ํฐ์์ ๊ณต๊ฐ์ ๊ธฐ์ฌํ๋ ๋ฐ ์ด๋ ค ์์ต๋๋ค.
์ด ์์
์ ๊ณ์ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ํ์ง๋ง ์ง๊ธ์ ๋ง๋งํฉ๋๋ค. corefx๊ฐ ์ ๋น๋ ํ๋ก์ธ์ค๋ก ์ด๋ํ๊ธฐ ๋๋ฌธ์ System.Security.Cryptography.Xml
๋ ๋ ์ด์ ๋น๋๋์ง ์์ต๋๋ค(๊ทธ๋์ @anthonylangsworth ์ ์ ๋ ํ
์คํธ ์์ฑ์ด ์ฐจ๋จ๋์์ต๋๋ค). ํ๋ก์ ํธ(๋ฐ ํ
์คํธ ํ๋ก์ ํธ)๋ฅผ ๋น๋ํ๋ ๋ฐ ๊ด๋ จ๋ ์ฌํญ์ ๋ํ ๊ฐ๋จํ ํฌ์ธํฐ๋ฅผ ์ป์ ์๋ง ์๋ค๋ฉด ๋ฐ๋ก ์งํํ ์ ์์ต๋๋ค. :)
์ถ์ . ๋น๋ ํ๋ก์ธ์ค๋ฅผ 20๋ถ ์ ๋ ์ถ์ ํ์ฌ ๋ ์ด์ ๋น๋๋์ง ์๋ ์ด์ ๋ฅผ ์์๋์ง๋ง ์์ง ํด๊ฒฐํ์ง ๋ชปํ์ต๋๋ค. ์ด๋ค ํฌ์ธํฐ๋ผ๋ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ...
@mellinoe @weshaggard SignedXml์ ์ ๋น๋ ์์คํ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ํ ์ง์นจ์ ์ ๊ณตํด ์ฃผ์๊ฒ ์ต๋๊น?
๐ญ๐ญ ๊ธฐ๋ค๋ ค์ผ ํ ๊ฒ ๊ฐ์์ ๐ญ๐ญ
@tintoy ํ์ฌ ์์ ์ค์ธ ์ง์ ๊ณผ ๊ตฌ์ถํ๋ ค๋ ํ๋ก์ ํธ๋ฅผ ์๋ ค์ฃผ์๋ฉด ๊ตฌ์ถํ๋ ๋ฐ ๋์์ ๋๋ฆด ์ ์์ต๋๋ค.
@weshaggard ํ์ฌ ๋ถ๊ธฐ๊ฐ ์์ต๋๋ค. ์ฝ๋๊ฐ ๋ง์คํฐ์ ์๊ณ ๋ฃจํธ ๋น๋(์๋์ ์ผ๋ก)์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค. - src/System.Security.Cryptography.Xml(dotnet/corefx#14628์ ๋์ ๋จ). @steveharter ๊ฐ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
@weshaggard @karelz ์ฐ๋ฆฌ ํฌํฌ์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค๊ณ ์ฐ๋ฆฌ๋ฅผ ์ฐจ๋จ ํด์ ํ๊ธฐ ์ํด ๊ฑฐ๊ธฐ์ ๊ตฌ์ถํ๊ฒ ํด์ ๊ธฐ์ฉ๋๋ค. ๋์ค์ master
์์ ๋ค์ ๋น๋๋๋ฉด ๋ณ๊ฒฝํ ์ฌํญ์ ์ธ์ ๋ ์ง ์ฒด๋ฆฌํฝํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ ํธํ๋ ์ ๊ทผ ๋ฐฉ์์ธ์ง ์๋ ค์ฃผ์ญ์์ค. :)
PR https://github.com/dotnet/corefx/pull/15491 ์์ ํ๋ก์ ํธ ์ธํ๋ผ๊ฐ ์๋ํด์ผ ํฉ๋๋ค. CI๊ฐ ํต๊ณผํ๋ฉด ๋ณํฉํ ์ ์์ผ๋ฉฐ ๋ ธ๋ ฅ์ ๋ถํธ์คํธ๋ฉํด์ผ ํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค - ๋๋ tintoy/corefx/master๋ฅผ ๋ฆฌ๋ฒ ์ด์ค
@weshaggard ok, ๊ทธ๋์ src์ ํ
์คํธ ํ๋ก์ ํธ๊ฐ ๋ชจ๋ ๋น๋๋์ง๋ง ํ
์คํธ ํ๋ก์ ํธ์ ํ๋ก์ ํธ ์ฐธ์กฐ๋ฅผ ์์ค ํ๋ก์ ํธ( <ItemGroup><ProjectReference Include="..\src\System.Security.Cryptography.Xml.csproj" /></ItemGroup>
)์ ์ถ๊ฐํ๋ฉด ๋ค์์ ์ป์ต๋๋ค.
1>------ Build started: Project: System.Security.Cryptography.Xml, Configuration: Debug Any CPU ------
1> D:\Development\github\tintoy\corefx\src\System.Security.Cryptography.Xml\src\System.Security.Cryptography.Xml.csproj ConfigurationErrorMessage: Could not find a value for TargetGroup from Configuration 'Debug'.
1> System.Security.Cryptography.Xml -> D:\Development\github\tintoy\corefx\bin\AnyOS.AnyCPU.Debug\System.Security.Cryptography.Xml\netcoreapp\System.Security.Cryptography.Xml.dll
2>------ Build started: Project: System.Security.Cryptography.Xml.Tests, Configuration: Debug Any CPU ------
2>D:\Development\github\tintoy\corefx\buildvertical.targets(88,5): error MSB4018: The "FindBestConfiguration" task failed unexpectedly.
2>D:\Development\github\tintoy\corefx\buildvertical.targets(88,5): error MSB4018: System.ArgumentException: Property 'ConfigurationGroup' value 'Debug' occured at unexpected position in configuration 'Debug'
2>D:\Development\github\tintoy\corefx\buildvertical.targets(88,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.ConfigurationFactory.ParseConfiguration(String configurationString, Boolean permitUnknownValues) in D:\Development\github\tintoy\corefx\src\Tools\CoreFx.Tools\Configuration\ConfigurationFactory.cs:line 219
2>D:\Development\github\tintoy\corefx\buildvertical.targets(88,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.FindBestConfiguration.Execute() in D:\Development\github\tintoy\corefx\src\Tools\CoreFx.Tools\FindBestConfiguration.cs:line 34
2>D:\Development\github\tintoy\corefx\buildvertical.targets(88,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
2>D:\Development\github\tintoy\corefx\buildvertical.targets(88,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
ํ๋ก์ ํธ ๊ฐ ์ฐธ์กฐ๊ฐ corefx์์ ์๋ํ๋ ๋ฐฉ์์ ๋ํด ๋ญ๊ฐ๋ฅผ ๋์น ๊ฒ ๊ฐ์ต๋๊น?
@tintoy ๊ทธ ์ค๋ฅ๊ฐ ๊ตฌ์ฒด์ ์ผ๋ก ๋ฌด์์ธ์ง ํ์คํ์ง ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์๋ก์ด ์์ง๋์ด๋ง ์์คํ
์์ ProjectReferences๊ฐ ํ์ํ์ง ์์ต๋๋ค. ํ
์คํธ ๋น๋์ ๊ฒฝ์ฐ ํญ์ ์ ์ฒด ํ๊ฒํ
ํฉ์ ๋น๋ํ๊ณ ์ฐธ์กฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ bin\ref\netcoreapp
์์ ์์ฑ๋ฉ๋๋ค. ํด๋น ๋๋ ํ ๋ฆฌ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ฌ ๋น์ด ์๋ ref ํด๋์์ ๋น๋ํ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ์ค์ค๋ก ์งํํ๋ ค๋ฉด ํ์ํ API ๋
ธ์ถ ์์ญ์ผ๋ก ref๋ฅผ ์์ฑํ๊ณ ref ๋น๋๋ฅผ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ
์คํธ ํ๋ก์ ํธ์์ ์๋์ผ๋ก API๋ฅผ ํ์ธํ๊ณ ์ด์ ๋ํด ๋น๋ํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ref๋ฅผ ์์ฑํ ์ ์๋ genapi๋ผ๋ ๋๊ตฌ๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ PR์ ์ ์ํ๊ฒ ์ ์ถํ์ฌ ์ฌ๋ฌ๋ถ์ ์ํด ์๋ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์๊ฒ ์ต๋๋ค. ์ด์ ์๊ฒ ์ต๋๋ค. ํ ์คํธ ํ๋ก์ ํธ์ ์ ํ์ด ํ์๋์ง ์๋ ์ด์ ๋ ref ํ๋ก์ ํธ์ ์์ง ์ ํ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค :-)
@weshaggard ์๊ฐ์ด
๋๋ ๋น ๋ฅด๊ฒ genapi ๋๊ตฌ๋ฅผ ์คํํ๊ณ ํด๋น ์ปค๋ฐ์ ํธ์ํ์ต๋๋ค . https://github.com/weshaggard/corefx/commit/29cf289f3e007fd4b13b191866ae848d99dec67e. ์์ ๋กญ๊ฒ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ง์ ์ฌ์์ฑํ์ญ์์ค. ์ปดํ์ผํ๋ ค๋ฉด ProjectReference๋ฅผ ๋ค๋ฅธ ์ฐธ์กฐ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๊ฑด๋ฐฐ - ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
@weshaggard ์ฑ๊ณต! ๊ฐ์ฌํฉ๋๋ค. ์ด์ ํ ์คํธ๋ฅผ ์์ฑํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. :)
(tintoy @dd834c63af4fe40faf84bc6a776b474ec9947eb1 , ์ค๋ณต์ ๋ฌด์ํ์ธ์)
๋ค! ์๋ ํ ์คํธ:
https://github.com/tintoy/corefx/commit/24864b3d25e665b6305f116890328527db07f1e1
๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค, @weshaggard!
์ถ์ . ํ
์คํธ ํ๋ก์ ํธ ์์ฑ(๋๋ฒ๊ทธ ํญ)์์ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ก์ปฌ๋ก ์ฌ์ ์ํด์ผ ํ์ต๋๋ค( .user
ํ์ผ์ ํตํด). D:\Development\github\tintoy\corefx\Tools/testdotnetcli/dotnet.exe
์ด์์ง๋ง D:\Development\github\tintoy\corefx\Tools\testdotnetcli\dotnet.exe
๋ณ๊ฒฝํ์ ๋๋ง ์๋ํ์ต๋๋ค.
D:\Development\github\tintoy\corefx\Tools/testdotnetcli/dotnet.exe
๋ด VS๋ ์ฌ๋์์ ๋ํด ๋ถํํ์ง ์์ต๋๋ค. ๊ฒฝ๋ก ๊ตฌ๋ถ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฐฝ๊ณผ ์ ๋์ค ๋ชจ๋์์ ์๋ํ๋๋ก ํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ๊ณ ํต์ค๋ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ผ๋ฐ์ ์ผ๋ก ์ ๋์ค๋ณด๋ค ๋ ์์ฉ์ ์ธ ์ฐฝ์์ ๋ง์ ํผํฉ ์ฌ๋์๋ฅผ ๋ณด๊ฒ ๋ฉ๋๋ค.
๊ถ๊ธํด์ ์ด๋ค ๋ฒ์ ์ VS๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? 2015๋ ์ธ๊ฐ 2017๋ ์ธ๊ฐ? ์๋ง๋ 2017๋ ์ ์์ ๋์์ ๊ฒ์ ๋๋ค :)
(์ ๋ ์์ฆ OSX๋ Linux๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํฌ๋ก์ค ํ๋ซํผ ์นํ์ ์ผ๋ก ๋ง๋ค๋ ค๋ ๋ ธ๋ ฅ์ ์ ์ ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค. BTW)
Windows 10์์ VS 2015๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์๋ฃจ์
์ ์ด์์ผ๋ฉฐ F5 ํค๋ฅผ ๋๋ฌ ํ
์คํธ๋ฅผ ๋๋ฒ๊ทธํ ์ ์์ผ๋ฉฐ ๋๋ฒ๊ทธ ๊ฒฝ๋ก๋ D:\git\corefx\Tools/testdotnetcli\dotnet.exe
์ข์, ๋ฏธ์ณ๋ฒ๋ฆด ๊ฒ ๊ฐ์ - ์ด์ ๋๋ ์ฌํํ ์ ์์ด!
์ด์ ์๋ dotnet.exe
๋ฅผ ์ฐพ์ ์ ์๋ค๊ณ ๋ถํํ์ง๋ง ๋ฐฑ์ฌ๋์๋ง ์๋ ๊ฒฝ๋ก๋ก ์คํ ํ์ผ์ ๋ช
์์ ์ผ๋ก ์ค์ ํ๋ฉด ์๋ํ๊ธฐ ์์ํ์ต๋๋ค. ๋ฐฉ๊ธ .csproj.user
ํ์ผ์ ์ ๊ฑฐํ๋๋ฐ _์ฌ์ ํ_ ์๋ํ๋ฏ๋ก ๋๊ฐ ์๊ฒ ์ต๋๊น :-o
์ฌ๋ฌ๋ถ, ํ ์คํธ ์์ฑ์ ์ฐธ์ฌํ๊ณ ์ถ์ต๋๋ค. ๊ธฐ๋ถ๋ฅผ ์์ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
์ข์ต๋๋ค. ์ด์ ์์ํ ์ ์๋ ๋จ๊ณ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. :)
๋๋ฃ์๊ฒ ์ฒซ ๋ฒ์งธ ํ ์คํธ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ํํ๋์ง ํ์ธํ๊ฒ ์ต๋๋ค...
์ฐธ์กฐ: @anthonylangsworth
@karelz ,
@anthonylangsworth ์ ์ ๋ ํ ์คํธ ์์ฑ ์
๊ทธ๋ฆฌ๊ณ ํ ์คํธ๋ฅผ ๋๊ธฐ ์ํด ์์ํ ์ฌ๋๋ค(๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค)์ ์ํด ๋ค์ ์ฃผ ์ด์ ์ ์๋ ์์ ์ ๋๋ ์ ์๋ ์์น์ ์์ด์ผ ํฉ๋๋ค. :)
ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง์ ์ฐ๋ฆฌ๊ฐ ํ์๋ก ํ๋ ํ
์คํธ์ ๊ด๋ จํ์ฌ - @bartonjs ๋ ์์์ ์ธ๊ธํ์ต๋๋ค).
๊ทธ๋ ๋ค์ ์ฃผ ๋ง์ ํด๊ฐ๋ฅผ ๋ง์น๊ณ ๋์์ฌ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ์๋ง๋ ๊ทธ์ ์ธ๋ถ ์ฌํญ ๋ฐ ๊ธฐ๋์น๋ฅผ ๋
ผ์ํด์ผ ํ ๊ฒ์
๋๋ค.
๋ํ @AndersAbel ์ ํ ๋ก ์ด๋ฐ์ ์ฌ์ ์ ๋ฌธ ์ง์๊ณผ ์ ์ฌ์ ์ธ ๋์์ ์ธ๊ธํ์ต๋๋ค.
@bartonjs๊ฐ OOF ๋์ ๊ทธ๋ ์ถ๊ฐ ์ง์นจ์ด์๋ ๊ฒฝ์ฐ @steveharter CC.
์ฌ๊ธฐ์ ๊ธฐ์ฌํด ์ฃผ์ @tintoy @anthonylangworth ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
๊ทธ๋ฆฌ๊ณ ์ฐธ์ฌ๋ฅผ ๊ณํํ๊ณ ์๋ ๋ค๋ฅธ ๋ชจ๋ ๋ถ๋ค๊ป๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค ;-)
@ bartonjs ๊ฐ OOF์ธ ๋์ ์ถ๊ฐ ์ง์นจ์ด ์๋ ๊ฒฝ์ฐ cc @ steveharter .
๋์ ํธ๊ธฐ์ฌ์ ๋ง์กฑ์ ์๊ตฌํ๋ ์ง๊ฒฝ์ ์ด๋ฅด๋ ๋ค.
https://blogs.technet.microsoft.com/exchange/2004/07/12/why-is-oof-an-oof-and-not-an-ooo/
์ด์ ๊ธฐ๋ถ์ด ์ข์์ก์ต๋๋ค.
๐ ์ด๋ ๊ฒ Microsoft ์ ์ฉ์ธ์ง๋ ๋ชฐ๋์ต๋๋ค! ์ฌ๋ฏธ์๋ ๊นจ๋ฌ์ ๊ฐ์ฌํฉ๋๋ค ๐
@anthonylangsworth ๋ tintoy/corefx#3์์ ๋๋ต์ ์ธ ํ ์คํธ ๊ณํ์ ์ค์ผ์นํ๊ธฐ ์์ํ์ต๋๋ค. (๋๋ ๊ทธ์ ๊ณํ์ ์ด์์ ๋ณต์ฌํด ๋๊ธ์ ์ฝ๊ฒ ๋ฌ ์ ์๋๋ก ํ์ต๋๋ค.) ๊ทธ๋์ ์ต์ํ ๋ ผ์ํ ๊ฒ์ด ์์ต๋๋ค. ์์ ๋กญ๊ฒ ์ดํด๋ณด๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ธ์. :)
CC: @karelz @steveharter @bartonjs
@karelz @steveharter @bartonjs (๋๋ ์ฐ๋ คํ ์ ์๋ ๋ชจ๋ ์ฌ๋) ํ
์คํธ์ InternalsVisibleToAttribute
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํ ์ ์ฑ
์ ๋ฌด์์
๋๊น? ํด๋น ๋ค์์คํ์ด์ค ๋ด์ ๋ง์ internal
ํด๋์ค๊ฐ ์์ผ๋ฉฐ ์ ์ ํ ํ
์คํธ ์ ์ฉ ๋ฒ์๋ฅผ ์ป๋ ๊ฒ์ ๊ณต๊ฐ ๋ฉ์๋๋ฅผ ํตํด์๋ง ์งํํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๊ณ ๋ ค ์ฌํญ์ด ์์์ ๊ฐ์ฌํฉ๋๋ค.
ํ , ์ฌํ๊ฒ๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค - @weshaggard @stephentoub? (์ด์ ๋ต๋ณ์ ์ง๋ฌธ)
corefx์ ๋ค๋ฅธ ์ฝ๋์์ ๋ณธ ๊ฒ์ผ๋ก๋ถํฐ ๋ฌธ์ ์ ํ๋ก์ ํธ์๋ ๋ค๋ฅธ ํ๋ก์ ํธ์ ๊ด๋ จ ์์ค ํ์ผ์ด ํฌํจ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ์์ System.Collections.Immutable
๋ [InternalsVisibleTo]
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋์์ด ๋๋ ๊ฒฝ์ฐ์
๋๋ค.
์ด ์ค๋๋ ๋ฌธ์ https://github.com/dotnet/corefx/issues/1604 ์์ InternalsVisibleTo์ ๋ํ ๋ด ์๊ฐ์ ๋ณผ ์ ์์ต๋๋ค
ํ ์คํธ์ InternalsVisibleToAttribute๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ์ ์ฑ ์ ๋ฌด์์ ๋๊น?
์๋์.
ํด๋น ๋ค์์คํ์ด์ค ๋ด์ ๋ง์ ๋ด๋ถ ํด๋์ค๊ฐ ์์ผ๋ฉฐ ์ ์ ํ ํ ์คํธ ์ ์ฉ ๋ฒ์๋ฅผ ํ๋ณดํ๋ ๊ฒ์ ๊ณต๊ฐ ๋ฉ์๋๋ฅผ ํตํด์๋ง ์งํํ๊ธฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
๊น์ ์์ธ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ ๋๋ฌํ๊ฑฐ๋ ์ญ์ ํด์ผ ํฉ๋๋ค. ๊น๋ค๋ก์ด ํ ์คํธ ์ผ์ด์ค๊ฐ ํ์ํ๋ค๋ฉด ๊ทธ๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ํ์๋ก ํ๋ ๊ฒ์ ๋๋ค.
๋ฌธ์ ์ ํ๋ก์ ํธ์๋ ๋๋๋ก ๋ค๋ฅธ ํ๋ก์ ํธ์ ๊ด๋ จ ์์ค ํ์ผ์ด ํฌํจ๋ฉ๋๋ค.
"ํ ์คํธ ํ๋ก์ ํธ์ ๋ด๋ถ ๊ตฌ์ฑ์์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์ป๊ธฐ ์ํ ์ ํ ์์ค๊ฐ ํฌํจ๋์ด ์์"์ ์๋ฏธํ๋ค๊ณ ๊ฐ์ ํ๋ฉด: ์๋์.
[InternalsVisibleTo]
๋ฐ ์์ค ๊ณต์ ๋ ๋ชจ๋ ์์๋ ์ ๋ต์
๋๋ค. ์ฐ๋ฆฌ ์ค ๊ฐ์ฅ ๋ชฉ์๋ฆฌ๊ฐ ํฐ ์ฌ๋๋ค์ (๋ณธ์ง์ ์ผ๋ก) ์ฐ๋ฆฌ์ ํ
์คํธ๊ฐ ํ์ค ์ธ๊ณ์์ ๋ง์ฃผํ ์ ์๋ ๊ฒ๋ค๋ง์ ๋ํํด์ผ ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. ํน์ ๋ธ๋ก์ ๋ํ ํ
์คํธ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค๋ฉด ์ ์กด์ฌํฉ๋๊น? ์, ์คํ์ ๋ ๋์ ์ค๋ณต ๊ฒ์ฌ๊ฐ ์ด๋ฏธ ํฌ์ฐฉํ๊ธฐ ๋๋ฌธ์ ์ ์คํ ์ ์๋ ์์ธ ๋ฐ์ ๋ธ๋ก์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ฌ์ค์ ํ์ธํ๊ณ OK๋ผ๊ณ ์ ์ธํ ์ ์๋ ๊ฒ์
๋๋ค.
๋ฐ๋ผ์ ์ฌ์ ์ ํ์ธํ๊ณ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ํด ๊ธ์ ์ ์ธ ํ ์คํธ๊ฐ ์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค(์: ์ง์ํ๋ ๋ชจ๋ ์๊ณ ๋ฆฌ์ฆ, ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ์ ๋ํ ์ต์/์ต๋ ๊ฐ์ ๊ฒฝ๊ณ ์ฌ๋ก).
ํ์ ์์๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ถ์ ์ ์ธ ํ
์คํธ(์: SignedInfo
๊ฐ Signature
๋ํ ํ์ ์์๋ผ๊ณ 4.1์ ๋์ ์์ต๋๋ค ... ๋๋ฝ๋ ๊ฒฝ์ฐ ํฉ๋ฆฌ์ ์ธ ์์ธ๋ฅผ ๋ด๋ณด๋ด๋์?)๋ ์ข์ต๋๋ค.
<foo><!-- hi --></foo>
๋ฐ <foo></foo>
(์๋ง๋ <foo />
?)์ ๊ฐ์ Canonicalizer ์ต์
ํ
์คํธ๋ c14n
์์ ๋์ผํ์ง๋ง c14n-withcomments
์์๋ ๋ค๋ฆ
๋๋ค. (์ ๊ทํ ์๊ณ ๋ฆฌ์ฆ์ ์๋ช
ํด์ผ ํ๋ฏ๋ก ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์๋ช
ํ ๋ค์ ๋ณธ๋ฌธ์ ๊ตํํด์ผ ํ ์ ์์ต๋๋ค.)
ํ ์คํธ๋ฅผ ๋ณํํฉ๋๋ค. ๋ชจ๋ canonicalizer๋ ๋ณํ์ ๋๋ค. ๋ฑ.
ํฌํผ ํ ์คํธ๋ ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฑ๊ณต์ ์ผ๋ก ๋ณ์กฐํ๋ ๋ณ์กฐ ํ ์คํธ๋ฅผ ๋ฐ๊ฒฌํ๋ค๊ณ ์๊ฐ๋๋ฉด ์ฌ๊ธฐ์ ๋ณด๊ณ ํ๊ฑฐ๋ github์ ๋ชจ๋ ๋ด๋น์์๊ฒ ์ปค๋ฐ/ํธ์ํ์ง ๋ง์ญ์์ค([email protected]์ผ๋ก test/case/description์ ์ด๋ฉ์ผ๋ก ๋ณด๋ด๊ธฐ).
์ข์, ๋๋ ํ๋ฃจ ๋์ ๋๋ฌด ๋ง์ด ์๊ฐํ๋ค. ์ด์ ํด๊ฐ๋ก ๋์๊ฐ๋๋ค.
ํด๊ฐ ์ค์ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ @bartonjs ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ด์ ํ์ค ์ธ๊ณ์์ ์ฆ๊ฑฐ์ด ์๊ฐ์ ๋ณด๋ด์ญ์์ค ;-)
@karelz @bartonjs (๋น๋ก ํด๊ฐ์์ ๋์์จ ํ์์ผ !)
@anthonylangsworth ๋ ํ ๋ก ์ ์์ํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ด๊ธฐ ํ ์คํธ ๋ฅผ ๋ง๋ค์ ์ผ๋ฉฐ ์ง๊ธ๊น์ง
Mono์ SignedXml ํ ์คํธ๊ฐ ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ด๊ฒ๋ค์ xmldigsig ์ฌ์, @bartonjs๊ฐ ์์ ์ธ๊ธํ ์ ์, ํ์ฌ ์ฝ๋์ ๋ํด ํ๊ฐํ๊ณ ์ฌ์ฌํ์ฌ ์ด์ํ ๊ฐ์น๊ฐ ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ํ ์คํธ๊ฐ ์๋ฏธ๊ฐ ์๋ ๊ฒฝ์ฐ ์ ์๊ถ(ํค๋) ์ ๋ณด์ ๋ํด ์ ์๊ฒ ํ์ ๋ณด๋ด์ฃผ์ญ์์ค.
๊ฐ์ฌํฉ๋๋ค. ์ดํด๋ณด๊ฒ ์ต๋๋ค. :)
๊ฐ์ฌํฉ๋๋ค, @steveharter . ๋งํฌ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น? ์ด๊ฒ๋ค์ ์ฐ๋ฆฌ์ ๋ง์ ํ ์คํธ๋ฅผ ๋จ์ถ์ํฌ ์ ์์ต๋๋ค. ์ด๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํ๋ ๋์ ํ์ฅํ๊ฑฐ๋ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ ์ ์๊ถ ๋๋ ๊ธฐํ ๊ณ ๋ ค ์ฌํญ์ด ์์ต๋๊น?
Mono์์ ์์ค ์ฝ๋๋ฅผ ๋ณต์ฌํ ๋ @anthonylangsworth , ์ฐ๋ฆฌ๋ ์ ์๊ถ ํค๋๋ฅผ ์ ์งํ๊ณ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ๋จผ์ ๋ณต์ฌ(์ฌ๋ฐ๋ฅธ ํค๋, ์ ์ฌ์ ์ผ๋ก ์ฝ๊ฐ์ ์กฐ์ ํฌํจ)๋ง ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. CoreFX์ ์ฝ๋๊ฐ ์์ผ๋ฉด ์ํ๋ ๋๋ก ์ฝ๋๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค, @steveharter. ํ ์คํธ๋ฅผ NUnit์์ Xunit์ผ๋ก ๋ณํ ํ๊ธฐ ์์ํ์ต๋๋ค.
๋๋ ์ด๊ฒ์ ๊ฒ์ํ์ง๋ง @anthonylangsworth ์ ์ ์ฅ์์ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
Mono์์ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ ์๊ถ ํค๋์ ํ ์ ์๋ ๋ง๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. Keep the existing copyright headers in place
โ Note: If you are porting just portions of the file over, you still need to bring over all the existing copyright headers.
2. Add the following copyright headers โ NOTE this is missing the middle line of the โregularโ CoreFx copyright headers:
// Licensed to the .NET Foundation under one or more agreements.
// See the LICENSE file in the project root for more information.
์ด ํ๋ก์ ํธ์ ์คํจํ ํ ์คํธ๊ฐ ์์ต๋๊น?
@Jaedson33 ํ์ฌ ๋ชจ๋ ธ ํ ์คํธ๋ฅผ ๋ณํ ์ค์ ๋๋ค. ์์ง ์ฝ๋ ์ค๋ฅ๋ฅผ ๋ํ๋ด๋ ์คํจํ ํ ์คํธ๋ฅผ ์ฐพ์ง ๋ชปํ์ง๋ง ์์ง ์ํํด์ผ ํ ํ ์คํธ๊ฐ ๋ง์ด ์์ต๋๋ค.
@anthonylangsworth ๋ฌด์์ ๋์๋๋ฆด๊น์?
@ Jaedson33 https://github.com/tintoy/corefx/issues/6#issuecomment -280904587 ์์ ํด๋น ์ง๋ฌธ์ ๋ต๋ณํ์ต๋๋ค. ์์ฝํ์๋ฉด, 84๊ฐ์ ๋ชจ๋ ธ ํ ์คํธ๊ฐ ์ฌ์ ํ ์คํจํ๊ณ ์์ต๋๋ค(์ฃผ๋ก ๋ณ๊ฒฝ๋ ๊ธฐ๋ณธ๊ฐ ๋ฐ .Net ํต์ฌ ์ ํ์ผ๋ก ์ธํด). ๋๋จธ์ง ํ ์คํธ๊ฐ ์๋ํ๋๋ก ๋์์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋๋ ๊ทธ๋ค์ ํตํด ์ผํ๊ณ ์์ต๋๋ค.
@karelz @bartonjs @steveharter System.Security.Cryptography.CryptoConfig ํด๋์ค ๋ CoreFx ์์ ๋ง์ XML ๋ณํ์ด ์ง์๋์ง ์๋๋ค๊ณ ๋ช
์ํฉ๋๋ค( DefaultNameHT
ํ๋จ์ 281~303ํ).
System.Security.Cryptography.Xml
๋ค์์คํ์ด์ค์ ํด๋์ค์์ ์ฌ์ฉํ๋ URI์ ํด๋นํฉ๋๋ค. System.Security.Cryptography.Xml
๋ฅผ .Net Core์ ๋ค์ ์ถ๊ฐํ๋ ๊ณผ์ ์์ ์ด๋ฅผ ๋ณต์ํด์ผ ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ์๋ ค์ฃผ์ธ์.
CC: @tintoy
@anthonylangsworth , XmlDsigC14NTransform๊ณผ ๊ฐ์ ์ผ๋ถ ๋ณํ์ ๊ด์ฐฎ์ง๋ง XmlDsigXsltTransform๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ณํ์ ๋งค์ฐ ์ํํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ ์ฒด .NET Framework์์ ๋ ์ง์คํธ๋ฆฌ ํค ์ตํธ์ธ์ ํตํด ํ์ฑํํ ์ ์์ง๋ง .Net Core์์๋ ์ง์ํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ForLedXml์ https://github.com/dotnet/corefx/blob/ac17228d823a07a15fe53069a49fb5e5f35835b7/src/System.Security.Cryptography.Xml/src/ ์์ KnownCanonicalizationMethods ๋ฐ DefaultSafeTransformMethods๋ฅผ ์ดํด๋ณด์ญ์์ค. ์ง์ํด์ผ ํ๋ ๋ณํ์ ๋๋ค.
๋๋ ์ํํ ๊ฒ๋ค์ ๊ทผ์์ด ์ค์ ๋ก ํญ๊ตฌ์ ํฌํจ๋์๋ค๋ ๊ฒ์ ๊นจ๋ซ์ง ๋ชปํ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ๋ค์ ์์ ํ ์ ๊ฑฐํ๋ ๋ฐ ํฌํํ ๊ฒ์ ๋๋ค. ์์ ํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
@morganbr ์๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. RSA ๋ฐ DSA ํค ๊ฐ XML ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ฃ๋๋ฉด ํฌํจ๋ ๋ณํ ๋ชฉ๋ก์ ๊ฒํ ํ๊ฒ ์ต๋๋ค. ๋๋ ์๋ง๋ ๋ชฉ๋ก์ ๊ฒ์ํ๊ณ ๋น์ ๊ณผ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๊ทธ๊ฒ์ ๊ฒํ ํ๋๋ก ์์ฒญํ ๊ฒ์ ๋๋ค.
@anthonylangsworth ์
@morganbr @AnthonyDGreen ์ด๋ฌํ ๋ณํ(MS16-035 ํจ์น์์ ๋นํ์ฑํ๋จ)์ ์ด์ ์ ํฌํธ์ ๋ํด ๋ ผ์ํ ๋ ์ด ์ค๋ ๋์์ ๋ ผ์๋์์ต๋๋ค. @bartonjs ๋ 12์ 14์ผ์ reg-compat ํญ๋ชฉ์ ์ ๊ฑฐํด์ผ ํ๋ค๊ณ ๋งํ์ต๋๋ค. @steveharter 12์ 15์ผ ๋๊ธ๋ ์ฐธ์กฐํ์ธ์. ์ด๋ฌํ ๋ณํ์ ์๋ง๋ ๋ฆ๊ฒ ๋ฐ์ธ๋ฉ๋ ์ ์์ผ๋ฏ๋ก ์ด์๋์ด์ผ ํฉ๋๋ค.
@steveharter @bartonjs ์ฐจ์๋ฒจ์
๋ ์ง์คํธ๋ฆฌ ์ง์์ด ์๋๋ผ๋ CryptoConfig๋ ๋ฌธ์์ด ์ด๋ฆ ๋๋ oid๋ก ํ๊ธฐ ๋ฐ์ธ๋ฉ๋ ๋ณํ์ ์์ฑํ ์ ์์ต๋๋ค. xml ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ํ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ SignedXml ์ฝ๋์์ 'CryptoConfig'๋ฅผ ๊ฒ์ํฉ๋๋ค.
์ด๊ฒ์ ์ ์ด๋ netfx์ ๋์ผํ ์ ํ์ ๋ํด ์ด๋ฌํ ๋ณํ์ ์ง์ํ๋๋ก CryptoConfig ํด๋์ค๋ฅผ ํ์ฅํด์ผ ํ๋ฉฐ ์ด์์ ์ผ๋ก๋ Mono์ ๋ํด ์ํธ ์ฐธ์กฐํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๊ฒ์ ๊ทธ๋ค์ ํฌํจํ์ง ์๊ณ CryptoConfig์ ์ฐ๊ฒฐํ์ง ์๋ ์ด์ (๋ด๊ฐ ์์ง ๋ชปํ๋)๊ฐ ์๋ ํ์ ๋๋ค.
FWIW๋ (corefx์ ์๋ ๊ฒ๊ณผ ๋น๊ตํ๊ธฐ ์ํด) CryptoConfig์ netfx ๋ฒ์ ์ ๋๋ค. https://referencesource.microsoft.com/#mscorlib/system/security/cryptography/cryptoconfig.cs ,20d26e036bc718bc
.NET Framework์์ ์ญํธํ์ ์ํด ๋ ์ง์คํธ๋ฆฌ ํ์ฅ ๊ฐ๋ฅํ "ํ์ฉ๋ ๋ณํ" ๋ชฉ๋ก์ด ์์ต๋๋ค. .NET Core์ ๊ฒฝ์ฐ ํ์ฅํ ์ ์์ง๋ง ์ ๋ ฅ ์๋ ๋ณํ๋ง ํฌํจํ๋๋ก ํ๋ ์ฝ๋ฉ๋์์ต๋๋ค.
ํ์ฉ ๋ชฉ๋ก์ ์๋ ๋ณํ์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณํ์ ์ด์ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด์ง ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๊ตฐ๊ฐ ๊ฐ SIgnedXml์ ์ปจํ ์คํธ ์ธ๋ถ์์ ๋ณํ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์(๋จ์ง ๋ฒ์ฉ ๋ณํ ์์ง์ผ๋ก ์ฌ์ฉํ๋ ค๋) ๋ณํ์ ๊ฐ๋ ๊ฒ์ด ์ข์ ์๋ ์์ต๋๋ค.
์ ์ฒด ์ ํ์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ .NET Framework์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ์ง ์์ ๊ฒ์ ๋๋ค... ๋ฐ๋ผ์ ํ๋ ์ฝ๋ฉ๋ ํ์ฉ ๋ชฉ๋ก์ ์๋ ๋ณํ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. "ํจํค์ง๋ฅผ ๊ฒ์ํ๊ธฐ ์ ์ ์ ๊ฑฐ"๋ ๋์ค์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. "๊ฒ์"ํ ์ ์์ต๋๋ค.
@bartonjs ๊ฐ ์ ๋ฅผ ์ด๊ฒผ์ต๋๋ค. CryptoConfig
์๋ ํ์ฉ๋ ๋ณํ ๋ชฉ๋ก์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ ๋ค์์คํ์ด์ค System.Security.Cryptography.Xml
์์ ๋ณํ์ ํ์ฉํ๋๋ก ํด๋น ํด๋์ค๋ฅผ ์์ ํด์ผ ํ์ต๋๋ค. ์ผ๋ถ ํ์ฉ๋ ๋ณํ์ .Net ํด๋์ค์ ์ ์ฒด ์ด๋ฆ์ ์ฌ์ฉํ์ง๋ง CryptoConfig
์ฌ์ ํ ๊ณ ์ ๋ชฉ๋ก๋ง ํ์ฉํฉ๋๋ค.
์๋ ค์ง ๋ณด์ ๋ฌธ์ ๊ฐ ์๋ ๋ณํ์ ์ด์ํ์ง ์๋ ๊ฒ์ ์ ํธํ์ง๋ง ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ๋ ์ค์ํฉ๋๋ค. ๊ฐ๋ฐ์๋ฅผ ๋์ ํ์ฌ ์ด ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํฉ๋๊น? ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๊ฒฝ์ฐ ์ ๋ณํ์ ์ถ๊ฐํ ์ ์๋๋ก ์ผ๋ถ ํ์์ ํ์ฅ์ ํ์ฉํ๋๋ก CryptoConfig
๋ฅผ ์์ ํฉ๋๊น? ์ด์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
CryptoConfig๋ ์ ํ ์์ธ์ด๋์ง ์์ต๋๋ค : https://github.com/dotnet/corefx/blob/ac17228d823a07a15fe53069a49fb5e5f35835b7/src/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/SignedXml.cs#L763 - L787. (๊ทธ๋ฌ๋ CryptoConfig๊ฐ ์ฌ์ ํ ํด๊ฒฐ์ ์ํ ๊ณต์ฅ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ๋ณํ์ด ๋ ์์น ๋ชจ๋์ ์์ด์ผ ํฉ๋๋ค.)
ํด๋น ๋ชฉ๋ก์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํ๋ ์ ํ(ํ์คํ์๋ ์๋)์ ์ฌ์ค์ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์์ ๋ชฉ๋ก์ ๋ํ ํ์ฅ์ ํ์ฉํ๋ ค๋ฉด ์๋ก์ด API๊ฐ ํ์ํ๋ฏ๋ก ๊ธฐ์ ์ ์ผ๋ก ์ด ๋ ธ๋ ฅ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฌธ์ ๊ฒ์ฆ์ ์ฌ์ฉํ ์ ์๋ ๋ณํ ์ ํ์ ์๋ตํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ค์ ํ ์คํธํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
์ค์ ๋ก CryptoConfig
๋ฐ DefaultSafeTransformMethods
๋ชจ๋ ๊ด๋ จ์ด ์์ต๋๋ค. SignatureDescription
์์ฑ์ CryptoConfig
์ง๋ฏ๋ก DefaultSafeTransformMethods
์ ๊ฐ์ ๊ด๊ณ์์ด CryptoConfig
์ธ๊ธ๋์ด ์์ง ์์ผ๋ฉด ๋ณํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. DefaultSafeTransformMethods
ํด๋น ๋ชฉ๋ก์ ์ ํํ๋ฏ๋ก ๋ณํ์ด XML์ ์ง์ ๋์์ง๋ง DefaultSafeTransformMethods
์์ ๋ฐํ๋์ง ์์ ๊ฒฝ์ฐ SignedXml.CheckSignature
๋ false๋ฅผ ๋ฐํํฉ๋๋ค.
ํ์ฌ ๊ตฌํ์์. CryptoConfig.AddAlgorithm
๋ PlatformNotSupportedException
ํ๋ฏ๋ก ์ฌ์ฉ์๋ ์์ ์ ๊ฒ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด ํฌํ
๋
ธ๋ ฅ์ ๋ฒ์๋ฅผ ๋์ด์์ง๋ง ์ด๊ฒ์ ์ดํด๋ณด๊ฑฐ๋ ๋ฏธ๋์ RemoveAlgorithm
๋ฅผ ์ถ๊ฐํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ด์ ๋๊ธ ์ดํ์ SignedXml.SignatureFormatValidator
์์ฑ์ ์ฐพ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ ์ ํ ๋ณํ ๋ฐ ํด์ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ ํ ์ ์์ต๋๋ค. ํธ์ถ์๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฅผ ๋ค์ด DefaultSafeTransformMethods
๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
๋ด๊ฐ ์ ์ ๋ฌผ์๋ฏ์ด ์ฌ๊ธฐ์ ๋๊ฐ ๊ฒฐ์ ์ ๋ด๋ฆฝ๋๊น? "๋ณด์ ์ ๋ฌธ๊ฐ"๋ก์ ์ ๋ ์์ ํ์ง ์์ ์ต์ ์ ์ ์ธํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ๋ฐ์ํ ์ ์๋ ๋นํธํ์ฑ์ ์ ๋๋ฅผ ์์ ํ ์ดํดํ์ง ๋ชปํฉ๋๋ค.
@anthonylangsworth ์ด ํ ๋ก ์ ์์ฌ ๊ฒฐ์ ์ ์ผ๋ถ์ ๋๋ค. ๊ฐ์ฅ ๋ง์ ๋ฐฐ๊ฒฝ์ง์์ ๊ฐ์ง ์ง์ญ ์ ๋ฌธ๊ฐ๋ค์ด ์ฌ๊ธฐ์์ ๊ฒฐ์ ์ ๋ด๋ฆด ๊ฒ์ ๋๋ค.
๋ด ๊ถ์ฅ ์ฌํญ: ์ฌ๋ฐ๋ฅธ ์กฐ์น๊ฐ ๋ฌด์์ธ์ง ์์ฌ์ค๋ฌ์ด ๊ฒฝ์ฐ ํ์ฌ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํฌํธ ์ฐ์ต ๋์ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋๊ณ (ํ ์คํธ ์ ์ฉ ๋ฒ์ ์์ด๋ ๊ฐ๋ฅ) ํฌํธ ์ฐ์ต๊ณผ ๋ณ๋๋ก ๋์ค์ ๊ฒฐ์ ํฉ๋๋ค.
์ข์, ๊ทธ๋์ ๋ด๋ถ์ ์ผ๋ก ๋ช๋ช ์ฌ๋๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด๊ณ ๊ณํ์ ๋น๊ณ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์ ํ์ด ์๋ํ ์ ์๋๋ก API ๋๋ ๊ธฐํ ๊ตฌ์ฑ์ด ์ ๊ณต๋๋ฉด ์ตํธ์ธ E2E ํ ์คํธ๋ฅผ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
@tintoy @anthonylangsworth @peterwurzinger ํ ์คํธ ๋ธ๋์น์ ์ํ๋ ์ด๋ป์ต๋๊น? ๋ณํฉ์ ์์ํ ์ ์์ต๋๊น? ๋๋ ๋น์ ์ ํ ์คํธ๋ฅผ ์ฒด๋ฆฌ ์ ํํ๊ณ ๊ฑฐ๊ธฐ์์ ๊ณ์ ๊ฐ ์ ์์ต๋๋ค.
https://github.com/dotnet/corefx/pull/16545 ์์ PTAL๋ ๊ฐ๋ฅํฉ๋๊น? MSDN ์ํ ์ค ํ๋๋ฅผ ํ์ฑํํ์ต๋๋ค.
์๋ ํ์ธ์ @krwq - ์์ง ์คํจํ๋ ํ ์คํธ๊ฐ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ผ๋ฐ ๋น๋ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ์คํ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ด์จ๋ ํฌํจํ ์ ์์ต๋๋ค.
@anthonylangsworth ์ ์ฑํ ํ๊ณ ๋ค์ ์ฐ๋ฝ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ถ์ . dotnet/corefx#16545 -> :+1:
@krwq -
PR( @anthonylangsworth ์์ ์ํ)์ ์ด๊ธฐ ์ ์ dotnet/corefx#16545(๋ด๊ฐ ์ํํ ๊ฒ)์ ๋ํด ๋ฆฌ๋ฒ ์ด์คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ๋ํ ์ค๋น๊ฐ ๋๋ ๋๋ก ์ฐ๋ฝ๋๋ฆฌ๊ฒ ์ต๋๋ค(๊ธธ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค).
@krwq @tintoy๊ฐ ๋งํ ๊ฒ์ ํ์ฅํ๊ธฐ ์ํด ์์ง ํด์ผ ํ ์ผ์ด ๋ง์ง๋ง ๊ธฐ์กด ํ
์คํธ๋ฅผ ์ด์ํ๊ณ ํ์ฅํ๋ ์์
๋ ๋ง์ด ํ์ต๋๋ค. ํนํ ์ธ๊ธํ ๋ง์ ์๊ณ ๋ฆฌ์ฆ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ด๋ฏธ CryptoConfig.cs
์ ๋ณ๊ฒฝํ์ต๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ์ด๊ฒ์ ์์ผ๋ก ๋์๊ฐ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ํ ์๋ก์ ์์
์ ๋ณต์ ํ๊ฑฐ๋ ๋ฎ์ด์ฐ๊ณ ์ถ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ทธ๋๋ก ๋ณํฉํ์ฌ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฐ๋ฆฌ๊ฐ ์ํํ ์์
์์ ๋น๋ํ๊ณ ๋ชจ๋ ๋ฒ๊ทธ๋ฅผ ์ฐพ๊ณ ๋ชจ๋ ๊ฒ์ ๋ ๋นจ๋ฆฌ ๋ง์คํฐํ ์ ์๋๋ก ํ ๊ณํ์
๋๋ค.
@tintoy ๋ https://github.com/tintoy/corefx/tree/feature/xml-crypto/tests ์์ ์ค์ธ ์ ์ผํ ๋ถ๊ธฐ์ ๋๊น?
๋ค.
์ @krwqํ๋์ด PR์ ๋ํ https://github.com/tintoy/corefx/tree/feature/xml-crypto/tests์์ ํ์ ์ง์ ์ ๋๋ค ๋ชจ๋ ธ์์ ๋ฌผ๊ฑด์ ์ข์ ๊ธ์ก (์ ... ). ์ต์ ์ฝ๋์ ๊ด์ฌ์ด ์๋ค๋ฉด ๊ทธ๊ณณ์ ์ดํด๋ด์ผ ํ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ๋งํ ์์๋ ํ ~ 40/340 ํ ์คํธ๊ฐ ์คํจํ์ต๋๋ค.
์ข์ ์บ์น, @peterwurzinger , ๋๋ ์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ ๊ทธ๊ฒ์ ๋ณํฉํ๋ค๊ณ ์๊ฐํ์ต๋๋ค!
@peterwurzinger @anthonylangsworth ์ด PR์ ๊ฝค ์ข์ต๋๋ค! ๋๋ ์ฌ์ค ๊ทธ๊ฒ์ ๋์ณค๋ค. ๊ทธ๊ฒ์ ๋น์ ์ ๋ธ๋์น, corefx์ ๋ณํฉํ์๊ฒ ์ต๋๊น, ์๋๋ฉด ์ ๊ฐ ์ ํํ์ฌ ๋ชจ๋ ๋ณํฉ/๋ฆฌ๋ฒ ์ด์ค๋ฅผ ์ํํ๊ธฐ๋ฅผ ์ํ์ญ๋๊น? Mono ํ ์คํธ์์ ๋๋ฝ๋ ๊ฒ์ด ์์ต๋๊น ์๋๋ฉด ์์ ํ๊ฐ์? @anthonylangsworth - CryptoConfig ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด - @bartonjs ์ ํ์ต๋๋ค. - ์ฐ๋ฆฌ๋ ํด๋น ํ์ผ์ ๊ฑด๋๋ฆฌ์ง ์์์ผ ํฉ๋๋ค. ์ด๋ฏธ ์ถฉ๋ถํ ์ถ์ ํฉ๋๋ค.
๋ด ์๋ ๊ณํ์ MSDN์์ ์ํ์ ๋ช ๊ฐ ๊ฐ์ ธ์์ ๋ชจ๋ ์๋ํ๋๋ก ํ์ฌ ์กฐ๊ธฐ ๊ฐ๋ฐฅ์ ์์ํ ์ ์๋๋ก ํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ทธ ํ์ ๋๋ ๋น์ ์ ์ง์ ์์ ํ ์คํธ๋ฅผ ๋ณํฉํ๊ณ ์์ ํ ๊ฒ์ ๋๋ค. ์ผ๋ถ ํ ์คํธ๊ฐ ์คํจํ๋ฉด ์ง๊ธ์ ๋นํ์ฑํํ๊ณ ๋์ค์ ์์ ํ ์ ์์ต๋๋ค. ์ต๋ํ ๋นจ๋ฆฌ corefx/master์ ๋ณํฉํด ๋ด ์๋ค :smile:
@krwq ์ ๋ฐ์ดํธ ๊ฐ์ฌํฉ๋๋ค. ๊ฐ๋ฅํ์๋ฉด ์ต์ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ์ธ์. ์ฐ๋ฆฌ๊ฐ ๋ชฉํ๋ก ํ๋ ๊ฒ์ ์๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค.
์๋ ํ์ธ์ = D
์คํจํ ํ ์คํธ๊ฐ ์์ต๋๊น?
@Jaedson33 @anthonylangsworth @tintoy
๋ค์์ (์์๋ก) ๊ฐ์ฅ ์ค์ํ ๋ฌธ์ ์ ํ์ฌ ๋ชฉ๋ก์
๋๋ค.
https://github.com/dotnet/corefx/issues?q=is%3Aopen+is%3Aissue+label%3ASystem.Security.Cryptography.Xml+label%3A%22up+for+grabs%22
@ Jaedson33 ์, ํ์ฌ ๋นํ์ฑํ๋์ด ์์ต๋๋ค. ์๋ ์ฐ๋ฆฌ๊ฐ ์ด๋์ ์๋์ง ๋๋ต์ ์ธ ์์ด๋์ด๋ฅผ ์ ๊ณตํด์ผํฉ๋๋ค.
์๋ ํ์ธ์, ์ธ์ ์ค๋ฅ๊ฐ ์๋์ง ์ ์ ์์ต๋๊น?
@Jaedson33 ๋ชจ๋ ์ํํธ์จ์ด์๋ ์ค๋ฅ๊ฐ ์์ต๋๋ค :wink: ์๋ํ์ง ์๋ ํน์ ํญ๋ชฉ์ด ์์ต๋๊น?
๊ฐ๋จํฉ๋๋ค: ๋ด UWP ํ๋ก์ ํธ์์๋ ์๋ํ์ง ์์ต๋๋ค ๐
์๋ ํ์ธ์, build.cml์ ์คํํ๋ ค๊ณ ํ ๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋์์ฃผ์ธ์?
๋ช ๋ น ์ค๋ฅ:
C:\Users\jaeds\Source\Tools\msbuild.cmd /nologo /verbosity:minimal /clp:Summary /maxcpucount /nodeReuse:false /l:BinClashLogger,Tools\net46\Microsoft.DotNet.Build.Tasks.dll;LogFile =binclash.log /p:ConfigurationGroup=๋๋ฒ๊ทธ /p:BuildPackages=false /flp:v=normal /flp2:warningsonly;logfile=msbuild.wrn /flp3:errorsonly;logfile=msbuild.err C:/Users/jaeds/Source /Repos/corefx/src/Native/../../bin/obj/Windows_NT.x64.Debug/native\install.vcxproj /t:rebuild /p:Configuration=Debug /p:Platform=x64 /p:PlatformToolset =v141. => O sistema nโรบo pode encontrar o arquivo especificado
์ข ๋ฃ ์ฝ๋ 1๊ณผ ํจ๊ป ๋ช ๋ น ์คํ์ ์คํจํ์ต๋๋ค.
๊ธฐ๋ณธ ๊ตฌ์ฑ ์์ ๋น๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ง ๋ชปํ์ต๋๋ค!
์ข ๋ฃ ์ฝ๋ 1๊ณผ ํจ๊ป ๋ช ๋ น ์คํ์ ์คํจํ์ต๋๋ค.
@JaedsonBarbosa ๊ฐ๋ฐ์ ๋ช ๋ น ํ๋กฌํํธ์์ ํ ์คํธ๋ฅผ ์คํํ๊ณ ์์ต๋๊น? (btw ์ด๊ฒ์ ์ฝ๊ฐ OT์ ๋๋ค) UWP์ ๊ฒฝ์ฐ - ์ฝ์์ ์์ง๋ง 2.0์ ๋ํด ์๋นํ ์ ๋ ดํ๊ฒ ์ํํ ์ ์๋์ง ์กฐ์ฌํ ๊ฒ์ ๋๋ค.
Visual Studio 2017์ฉ ๊ฐ๋ฐ์ ๋ช ๋ น ํ๋กฌํํธ์์ ์ํํ๊ณ ์์ต๋๋ค.
@JaedsonBarbosa github์์ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ค๊ณ repo( git clean -fdx
)๋ฅผ ์ ๋ฆฌํ ํ ๋น๋ํด ๋ณด์
จ์ต๋๊น ? ๋ ๋ฒ์งธ๋ก ์๋ํด์ผ ํ ๊ฒ์ ๊ฒฝ๋ก ๊ธธ์ด๋ฅผ ์ค์ด๋ ๊ฒ์
๋๋ค(์ฆ, ์ ์ฅ์๋ฅผ C:\corefx ์๋์ ๋์ญ์์ค). ๋ ๋ค๋ฅธ ์๋๋ ๋๊ฒ ์บ์( %USERPROFILE%\AppData\Local\NuGet
๋ฐ %USERPROFILE%\.nuget
)๋ฅผ ์ ๋ฆฌํ๋ ๊ฒ์
๋๋ค.
๊ทธ๋๋ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํ๋ฉด ์ ๋ณด์ ํจ๊ป ๋ณ๋์ ๋ฌธ์ ๋ฅผ ๋ง๋์ธ์.
๋๋ C:/corefx/src/Native/../../bin/obj/Windows_NT.x64.Debug/native\install.vcxproj ๊ฒฝ๋ก๊ฐ ์ ํจํ์ง ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ์ฒด์ : ์๋์ฐ 10
VS: 2017 ์ปค๋ฎค๋ํฐ
VS 2017์ฉ ๊ฐ๋ฐ์ ๋ช
๋ น ํ๋กฌํํธ๋ฅผ ์์ํ๊ณ ๋ค์์ ์
๋ ฅํฉ๋๋ค.
cd C:/corefx
build
์ด์ ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Error in the command: C:\Users\jaeds\Source\Tools\msbuild.cmd /nologo /verbosity:minimal /clp:Summary /maxcpucount /nodeReuse:false /l:BinClashLogger,Tools\net46\Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log /p:ConfigurationGroup=Debug /p:BuildPackages=false /flp:v=normal /flp2:warningsonly;logfile=msbuild.wrn /flp3:errorsonly;logfile=msbuild.err C:/corefx/src/Native/../../bin/obj/Windows_NT.x64.Debug/native\install.vcxproj /t:rebuild /p:Configuration=Debug /p:Platform=x64 /p:PlatformToolset=v141. => O sistema nโรบo pode encontrar o arquivo especificado
Command execution failed with exit code 1.
Failed to generate native component build project!
"O sistema nโรบo pode encontrar o arquivo"="์์คํ ์ด ์ง์ ๋ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค"
ํฌ๊ธฐํฉ๋๋ค. 2017 VS์์๋ ์๋ํ์ง ์์ต๋๋ค.
์ด๊ฒ์ด ์ธ์ NuGet ํจํค์ง๋ก ๋ค์ด๋ก๋๋ ์ ์๋์ง ์๊ณ ์์ต๋๊น?
myget.org์์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ณต์ ํจํค์ง๋ .NET Core 2.0 ์จ์ด๋ธ์ ์ผ๋ถ๊ฐ ๋ฉ๋๋ค. ๋ง์ผ์คํค 2.0.0 ์ค๋ช
์ ์ฐธ์กฐํ์ธ์. 5์ 10์ผ์ ZBB(#17619)์ด๋ฏ๋ก RTW ๋ฆด๋ฆฌ์ค๋ "๊ณง" ๋ค์ ๋ฐ๋ผ์ผ ํฉ๋๋ค(์ ํํ ๋ ์ง๋ ์์ง ๊ณต๊ฐ๋์ง ์์).
@karelz System.Security.Cryptography.Xml์ด ํฌํจ๋ ํจํค์ง์ ๋งํฌ๋ฅผ ๋ณด๋ด์ฃผ์๊ฒ ์ต๋๊น?
https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Security.Cryptography.Xml
dogfood 2.0 ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md
@karelz ์ข์, UWP ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ค์นํ๊ณ ์ถ์ง๋ง ์๋ํ ๋ ํด๋น ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
O pacote System.Security.Cryptography.Xml 4.4.0-preview1-25205-01 nรฃo รฉ compatรญvel com uap10.0(UAP,Version=v10.0). O pacote System.Security.Cryptography.Xml
4.4.0-preview1-25205-01 dรก ์ง์:
- monoandroid10 (๋ชจ๋ ธ์๋๋ก์ด๋, ๋ฒ์ =v1.0)
- monotouch10 (๋ชจ๋ ธํฐ์น, ๋ฒ์ =v1.0)
- netcoreapp2.0(.NETCoreApp, ๋ฒ์ =v2.0)
- uap10.1(UAP, ๋ฒ์ =v10.1)
- xamarinios10(Xamarin.iOS, ๋ฒ์ =v1.0)
- xamarinmac20(Xamarin.Mac, ๋ฒ์ =v2.0)
- xamarintvos10(Xamarin.TVOS, ๋ฒ์ =v1.0)
- xamarinwatchos10(Xamarin.WatchOS, ๋ฒ์ =v1.0)
๋ด ์ค์ project.json์ ๋๋ค.
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.3.1"
},
"frameworks": {
"uap10.0": {}
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {},
"win10-x86": {},
"win10-x86-aot": {},
"win10-x64": {},
"win10-x64-aot": {}
}
}
@JaedsonBarbosa , ์ฐ๋ฆฌ๋ ํ์ฌ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด UAP๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. https://github.com/dotnet/corefx/pull/17969 ๊ฐ ๋ณํฉ๋๊ณ ์ ํจํค์ง๊ฐ ์์ฑ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.
๐ง ์์์ด ๊ณ์ ๊ธฐ๋ค๋ฆด๊ฒ ๐ญ
@krwq ๊ทผ๋ฐ... UAP10.1์ด ๋ญ๊ฐ์???
@krwq ์ ์ง๊ธ PR dotnet/corefx#17969๋ฅผ ๋ณํฉํ์ง ์์ต๋๊น?
@JaedsonBarbosa ๋ฐฉ๊ธ ๋ณํฉ๋์์ต๋๋ค. ํจํค์ง๊ฐ ๋ด์ผ ์์นจ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. PR์ด CI์์ ๋ น์์ด ์๋ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก ๋ณํฉํ์ง ์์ต๋๋ค. ์ด์ ์ดํ๋ก OSX CI ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์กฐ๊ธ ์ค๋๋์์ต๋๋ค.
@krwq ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ NuGet ํจํค์ง๋ฅผ ์ธ์ ๋ค์ด๋ก๋ํ ์ ์๋์ง ์๋ ค
@JaedsonBarbosa ๋ UWP์ .NET Standard 2.0 ์ง์์ด ์ต์ฒจ๋จ์ด๋ผ๋ ์ ์
์ด๋ ์ชฝ์ด๋ UWP์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ก ๋์๋๋ฆด ์ ์๋ ์์น๊ฐ ์๋ ์๋ ์์ต๋๋ค. 5์ 10์ผ ์ดํ์ ๋ ๋ง์ ๋์์ ๋๋ฆด ์ ์์ ๊ฒ์
๋๋ค. ... ๋จ์ง ๊ธฐ๋์น๋ฅผ ์ค์ ํ๋ ๊ฒ๋ฟ์
๋๋ค.
@JaedsonBarbosa ๋ 2์ผ ๋์ ์ ๋ฒ์ ์ ์์ฑํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค ๐ ์ฌ๊ธฐ์์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ ์ ์์ต๋๋ค.
https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Security.Cryptography.Xml
4/6 ์ดํ์ ํจํค์ง๊ฐ ๋ํ๋ ๋๋ง๋ค ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ด์ผ ํฉ๋๋ค. ์ค๋ ํจํค์ง๊ฐ ์๋ ์ด์ ๋ฅผ ํ์ธํ๊ฒ ์ต๋๋ค. OSX ๋น๋์ ๊ด๋ จ๋ ๋คํธ์ํน ๋ฌธ์ ์ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค.
ํธ์ง: ํ์ธ ์ค - ์ด๊ฒ์ OSX ๋คํธ์ํน ๋ฌธ์ ์ ๊ด๋ จ์ด ์์ต๋๋ค.
@krwq ์ค๋ OSX ๋คํธ์ํฌ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ค๋ฉด ์ง๊ธ ํ์๊ฒ ์ต๋๊น?
๊ฑฐ์ ๋ชจ๋ PR์ ์ฐจ๋จํ๋ฏ๋ก ์ฐ์ ์์๊ฐ ๋์ง๋ง ETA๊ฐ ์์ต๋๋ค.
์ข์์ ๐
๊ทธ๋์ ๊ณ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค.
ํํธ 4๋ ์ธ์ ์ค๋น๋๋์?
@JaedsonBarbosa ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ ํ ์คํธํ๊ณ ์๋ํ๋ ๊ฒ์ผ๋ก ์ ์ฆํ์ต๋๋ค. ํ ์คํธ์๋ ๋จ์ผ "์๋ฃ" ์ง์ ์ด ์์ต๋๋ค. 100% ์ฝ๋ ์ ์ฉ ๋ฒ์์ ์๋ํ์ง ์๋ ์ฝ๋๊ฐ ์์ ์ ์์ต๋๋ค. ๊ด์ฌ ์๋ ํน์ ์๋๋ฆฌ์ค๊ฐ ์์ต๋๊น?
์๋ ๐
@krwq ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ ์ ์ผ๋ก ๋ฐฐ์กํ ์ ์์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์๋ฃ๋ ์์ ์ ์ ์ธํ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์์๋ฅผ ์ ํํ๊ณ ์ด ๋ฌธ์ ๋ฅผ ๋ซ์ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ผ๋ง๋ ํ ์คํธ ํ๋ช ํฉ๋๊น?
@karelz ๋๋ ํ์ฌ ๋ด๊ฐ ์๊ฐํ ์ ์๋ ๋ชจ๋ ์ค์ํ E2E ์๋๋ฆฌ์ค๋ฅผ ํ ์คํธํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋๋ก ํธ์ํ๊ฒ ๋ฐฐ์กํ๊ณ ์์ต๋๋ค. 2.0 ์ฐจ๋จ ๋ฌธ์ ๋ฅผ ์ฐพ์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ์์ง๋ง ๋ ์ธ๊ธฐ ์๋ ์๋๋ฆฌ์ค(์ค๋ฅ ์ฒ๋ฆฌ ํฌํจ)๋ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ๊ฒ์ผ๋ก ์ ์ฆ๋ ์ ์๋๋ก ์ฌ์ ํ ์ ์ฉ ๋ฒ์๋ฅผ ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.
๋์๊ฒ "์๋ฃ"๋ ์๋ฌด๋ ๋ ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ฑฐ๋ ๊ฐ์ ํ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ข์ต๋๋ค. @bartonjs ๊ฐ ๋ฐฐ์ก ์ค๋น ์ํ์ ๋์ํ๋ฉด ์ค์ฉ์ ์ด๊ณ ์ด ๋ฌธ์ ๋ฅผ ์ข
๋ฃํ๊ฒ ์ต๋๋ค.
ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋๋ฆฌ๋ ค๋ฉด(๋น์ฐจ๋จ 2.0์ผ๋ก) Future์ ๋ํด ๋ณ๋์ ์์
ํญ๋ชฉ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์๊ณ ๋ฆฌ์ฆ, ๋ณํ ๋ฐ ์ ๊ทํ ๋ชฉ๋ก์์ ๋ชจ๋ ๊ฒ์ ์ ์คํ๋ค๋ฉด ๋์๊ฒ ๋์์ด ๋ฉ๋๋ค.
๊ทธ๋์ ๋๋ ์ด ๋ฌธ์ ๊ฐ ๋ง์นจ๋ด ์ข ๊ฒฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
์ข์ต๋๋ค. ๋ค์์ ํตํด ์ ์ฉ ๋ฒ์ ์งํ ์ํฉ์ ์ถ์ ํด ๋ณด๊ฒ ์ต๋๋ค. https://github.com/dotnet/corefx/issues/16829 - ์ ๋ ์ด๊ฒ์ ๋ง์คํฐ ๋ฌธ์ ๋ก ์ทจ๊ธํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ง์คํฐ ๋ฌธ์ ๋ก ์ทจ๊ธํ์ง๋ง ๋๋ก๋ ์์ ์ ์๋ฃํ๋ค๊ณ ์ ์ธํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด "๋ ๋ง์ ์์ "์ ์ถ์ ํ๋ ๋ชจ๋ ๋ ํฐ ๊ธฐ๋ฅ์ ๋ํด 1๊ฐ์ ๋ฏธํด๊ฒฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ ์ง์ ์ผ๋ก ๋๊ตฌ์๊ฒ๋ ๋์์ด ๋์ง ์์ต๋๋ค.
์ง๊ธ์ ๋ฌธ์ ๋ซ์์ต๋๋ค ๐ข
๊ทธ๋์... System.Security.Cryptography.Xml์ ๋ํ ์ง๋ฌธ์ ์ด๋์ ํด์ผ ํฉ๋๊น?
์์ @krwq ์ ๋ต๋ณ์ผ๋ก ์ถฉ๋ถํ์ง ์์ต๋๊น?
๋ ํฐ ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ธ์. ์ด์ ๋ต๋ณ์ ๋ํ ์์ ์ค๋ช
์ด๋ผ๋ฉด ์ฌ๊ธฐ์ ๋ณด๊ดํ ์ ์์ต๋๋ค. ํ์คํ์ง ์์ ๊ฒฝ์ฐ ์ฌ๊ธฐ์์ ๋ฌธ์ํ๊ณ ์ต์
์ ๊ฒฝ์ฐ ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ๋๋ก ์์ฒญํ ๊ฒ์
๋๋ค ;-)
@krwq UWP ์ง์ ์์ด ๊ณ์๋ฉ๋๋ค ๐
@JaedsonBarbosa ๋ https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Security.Cryptography.Xml/4.4.0-preview1-25210-01 ์ด ์๋ํ์ง ์์ต๋๊น? ๋น์ ์ดํ๊ณ ์๋ ์ผ์ ๋จ๊ณ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๊น?
@krwq ๋ฐฉ๊ธ ๊ทธ ๋ช
๋ น์ ๋ฃ์์ต๋๋ค.
์ค์น ํจํค์ง System.Security.Cryptography.Xml - ๋ฒ์ 4.4.0-preview1-25210-01
๊ทธ๊ฒ์ ์ค๋ฅ์ ๋๋ค:
O pacote System.Security.Cryptography.Xml 4.4.0-preview1-25210-01 nรฃo รฉ compatรญvel com uap10.0(UAP,Version=v10.0). O pacote System.Security.Cryptography.Xml
4.4.0-preview1-25210-01 dรก ์ง์:
- monoandroid10 (๋ชจ๋ ธ์๋๋ก์ด๋, ๋ฒ์ =v1.0)
- monotouch10 (๋ชจ๋ ธํฐ์น, ๋ฒ์ =v1.0)
- netcoreapp2.0(.NETCoreApp, ๋ฒ์ =v2.0)
- uap10.1(UAP, ๋ฒ์ =v10.1)
- xamarinios10(Xamarin.iOS, ๋ฒ์ =v1.0)
- xamarinmac20(Xamarin.Mac, ๋ฒ์ =v2.0)
- xamarintvos10(Xamarin.TVOS, ๋ฒ์ =v1.0)
- xamarinwatchos10(Xamarin.WatchOS, ๋ฒ์ =v1.0)
๋ด๊ฐ ์ด์ ์ ๋งํ ๊ฒ์ ์๊ธฐ์์ผ์ค๋๋ค: https://github.com/dotnet/corefx/issues/4278#issuecomment -292448824
ํจํค์ง์ ํจ๊ป UWP ์ง์์ ๋ฐ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํจํค์ง๋ .NET Standard 2.0 AFAIK์ ์์กดํ๊ณ UWP๋ ์์ง .NET Standard 2.0์ ์ง์ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ .NET Core 2.1์ ์ํด ์์
ํ ๊ฒ์
๋๋ค(์ผ๋ถ ๋นํธ๋ 5 ์ดํ์ ์์
ํ ๋ ํฐ ํ์ ์ฐจ๋จ์ ํด์ ํ๊ธฐ ์ํด ์ผ์ฐ ์๋ฃ๋์์ต๋๋ค. /10(์์ ํ ์๋ํ์ง๋ ์์).
ํจํค์ง์ ๋ํ UWP ์ง์์ ์ป์ผ๋ ค๋ฉด IMO 2.1์์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.
@karelz ๊ทธ๋ผ ์ธ์ ๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ ๊ฒ
uap10.1 ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์์ต๋๊น?
์, ๊ทธ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋น์ ์ด ๊ณผ๋ํ๊ฒ ๋๊ธฐ๋ฅผ ๋ถ์ฌ๋ฐ๊ณ ์ด ๋ชจ๋ ๊ณผ์ ๋ฐฉ์งํฑ์ ํต๊ณผํ ์ ์๋ค๋ฉด. ๋ด๊ฐ ๋งํ๋ฏ์ด, 5/10๊น์ง UWP๋ฅผ ๋์์ค ์ ์๋ ์ฐ๋ฆฌ์ ๋ฅ๋ ฅ์ ๋งค์ฐ ์ ํ์ ์ด๋ฏ๋ก ๋๋ถ๋ถ ํผ์๊ฐ ๋ ๊ฒ์
๋๋ค ๐ฆ. ์ฌ๊ธฐ์ ๊ธฐ๋์น๋ฅผ ์ค์ ํ๋ฉด ...
Visual Studio 2017๋ก corefx-master๋ฅผ ๋น๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค ๐
@karelz @krwq ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์๋ฃจ์
์ ๋น๋ํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์์ CMakeError๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
https://1drv.ms/u/s!AjDoJtNk3vvWjKIAYajeMPkWkI -m6Q
๋์์ฃผ์ธ์ ๐
์ถ์ : ํฌ๋ฅดํฌ๊ฐ์ด๋ก ๋์ด ์์ง๋ง ๋ฒ์ญ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์ ์ ์์ต๋๋ค ๐
์คํจํ ๊ฒ์ ์ข์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
-- C ์ปดํ์ผ๋ฌ ์๋ณ์ MSVC 19.0.24218.2์
๋๋ค.
-- CXX ์ปดํ์ผ๋ฌ ์๋ณ์ MSVC 19.0.24218.2์
๋๋ค.
-- ์๋ํ๋ C ์ปดํ์ผ๋ฌ ํ์ธ: C:/Program Files (x86)/Microsoft Visual Studio/Shared/14.0/VC/bin/amd64/cl.exe
-- ์๋ํ๋ C ์ปดํ์ผ๋ฌ ํ์ธ: C:/Program Files (x86)/Microsoft Visual Studio/Shared/14.0/VC/bin/amd64/cl.exe -- ์๋
-- C ์ปดํ์ผ๋ฌ ABI ์ ๋ณด ๊ฐ์ง
-- C ์ปดํ์ผ๋ฌ ABI ์ ๋ณด ๊ฐ์ง - ์๋ฃ
-- ์๋ํ๋ CXX ์ปดํ์ผ๋ฌ ํ์ธ: C:/Program Files (x86)/Microsoft Visual Studio/Shared/14.0/VC/bin/amd64/cl.exe
-- ์๋ํ๋ CXX ์ปดํ์ผ๋ฌ ํ์ธ: C:/Program Files (x86)/Microsoft Visual Studio/Shared/14.0/VC/bin/amd64/cl.exe -- ์๋
-- CXX ์ปดํ์ผ๋ฌ ABI ์ ๋ณด ๊ฐ์ง
-- CXX ์ปดํ์ผ๋ฌ ABI ์ ๋ณด ๊ฐ์ง - ์๋ฃ
-- CXX ์ปดํ์ผ ๊ธฐ๋ฅ ๊ฐ์ง
-- CXX ์ปดํ์ผ ๊ธฐ๋ฅ ๊ฐ์ง - ์๋ฃ
-- COMPILER_HAS_DEPRECATED_ATTR ํ
์คํธ ์ํ
-- COMPILER_HAS_DEPRECATED_ATTR ํ
์คํธ ์ํ - ์คํจ
-- COMPILER_HAS_DEPRECATED ํ
์คํธ ์ํ
-- COMPILER_HAS_DEPRECATED ํ
์คํธ ์ํ - ์ฑ๊ณต
-- ๊ตฌ์ฑ ์๋ฃ
-- ์์ฑ ์๋ฃ
๋๊ตฌ๋ ์ง ์ด์ ๊ทธ๊ฒ์ ๊ตฌ์ถํ๊ธฐ ์ํด ๋ฌด์์ ํ ์ ์์ต๋๊น?
@JaedsonBarbosa ์ด๋ป๊ฒ
pushd corefx\repo\path
git pull
git clean -fdx
- ๋จ์ ํ์ผ์ ์ ์ฅ์๋ฅผ ์ ๋ฆฌํฉ๋๋ค(๋ฌด์์ ํ๋์ง ์ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ ์ฃผ์ํ์ญ์์ค)build
๋๋ ./build.sh
๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ฅผ ๋น๋ํ๋ ค๋ฉด CMake 2.8.12 ์ด์์ ์ค์นํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ํญ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
@Jaedson33 ๋ํ ์๋ก์ด ๊ธฐ์ฌ์ ๋ฌธ์๋ฅผ ํ์ธํ๊ณ ๊ฐ์ ํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค(CoreFX ๋ฉ์ธ ํ์ด์ง์์ ๋งํฌ๋จ)
CMake 3.8์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
@krwq ๋ง์ํ์ ๋๋ก ํ๊ณ 1์๊ฐ์ ๋
@JaedsonBarbosa ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค. ๋ค์ ์์ํด ๋ณด์ธ์. ์ผ๋ถ ์ฐ๊ฒฐ ๋ฌธ์ ์ผ ์ ์์ต๋๋ค. ์๋ํ์ง ์์ผ๋ฉด ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ธ์. ๋๊ตฐ๊ฐ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง ์ถ์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
@krwq ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
C:\Users\jaeds\Source\Repos\corefx>call "C:\Users\jaeds\Source\Repos\corefx\Tools\dotnetcli\dotnet.exe" restore "C:\Users\jaeds\Source\Repos\corefx\packages\microsoft.dotnet.buildtools\1.0.27-prerelease-01512-01\lib\\tool-runtime\project.csproj" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://api.nuget.org/v3/index.json
C:\Users\jaeds\Source\Repos\corefx\packages\microsoft.dotnet.buildtools\1.0.27-prerelease-01512-01\lib\\tool-runtime\project.csproj --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://api.nuget.org/v3/index.json
Restoring packages for C:\Users\jaeds\Source\Repos\corefx\packages\microsoft.dotnet.buildtools\1.0.27-prerelease-01512-01\lib\tool-runtime\project.csproj...
Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.diagnostics.debug/index.json'.
An error occurred while sending the request.
A conexรo com o servidor foi interrompida de modo anormal
Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.runtime/index.json'.
An error occurred while sending the request.
A conexรo com o servidor foi interrompida de modo anormal
Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.text.encoding/index.json'.
An error occurred while sending the request.
A conexรo com o servidor foi interrompida de modo anormal
Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.runtime/index.json'.
An error occurred while sending the request.
A conexรo com o servidor foi interrompida de modo anormal
Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.text.encoding/index.json'.
An error occurred while sending the request.
A conexรo com o servidor foi interrompida de modo anormal
C:\Users\jaeds\Source\Repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): error : Failed to retrieve information about 'System.Text.Encoding' from remote source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.text.encoding/index.json'. [C:\Users\jaeds\Source\Repos\corefx\packages\microsoft.dotnet.buildtools\1.0.27-prerelease-01512-01\lib\tool-runtime\project.csproj]
C:\Users\jaeds\Source\Repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): error : An error occurred while sending the request. [C:\Users\jaeds\Source\Repos\corefx\packages\microsoft.dotnet.buildtools\1.0.27-prerelease-01512-01\lib\tool-runtime\project.csproj]
C:\Users\jaeds\Source\Repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): error : A conexรo com o servidor foi interrompida de modo anormal [C:\Users\jaeds\Source\Repos\corefx\packages\microsoft.dotnet.buildtools\1.0.27-prerelease-01512-01\lib\tool-runtime\project.csproj]
C:\Users\jaeds\Source\Repos\corefx>set RESTORE_ERROR_LEVEL=1
ERROR: An error occured when running: '"C:\Users\jaeds\Source\Repos\corefx\Tools\dotnetcli\dotnet.exe" restore "C:\Users\jaeds\Source\Repos\corefx\packages\microsoft.dotnet.buildtools\1.0.27-prerelease-01512-01\lib\\tool-runtime\project.csproj"'. Please check above for more details.
@JaedsonBarbosa ์์์ ์ ์ํ ๋๋ก ์ ๋ฌธ์ ๋ฅผ
@karelz ์ด์ ์๋ ์ค์
๋๋ค ๐
๋น๋ํ๊ธฐ ์ํด ๋ด๊ฐ ํ ์ ์ผํ ์๊ฐ์ ํ์ผ์ C:\Users\jaeds\Source\Repos\corefx-master์์ C:\Users\jaeds\Source๋ก ์ฎ๊ธฐ๋ ๊ฒ๋ฟ์ด์์ต๋๋ค.
README์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ ํ์ธ์, ์ด์ ์ํ ์ฑ์ธ UWP ์ฑ์์ ์ด ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. https://github.com/JaedsonBarbosa/corefx/tree/BigOptimization/src/System.Security.Cryptography.Xml/TesteAssinatura
@JaedsonBarbosa ๋๋จํด! CoreFX๋ก ๋๋์๊ฐ๋ ๋ฐ ๊ฐ์น๊ฐ ์๋ ์์ ์ด ์์ต๋๊น? (์ฆ, ์ผ์์ ์ธ ํดํน์ด ์๋ ๊ฒ)
@karelz ๊ธ์, ๋ด ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ CoreFX์์ ๋ฌด์์ ๋จ์ํ(๋๋ ์ ๊ฑฐ)ํ ์ ์๋์ง ํ์ธํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค ๐
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ์ด๊ฒ์ ์ด์ํ๋ ๋ฐ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๊ณ ์์ต๋๋ค!
Nuget ํจํค์ง๊ฐ .NET Standard 2.0 ๋์ .NET Core 2.0์ ์ฐธ์กฐํ๋ ์ด์ ๋ฅผ ์ฌ์ญค๋ด๋ ๋ ๊น์? ๊ทธ๊ฒ ๋ฐ๋์งํ์ง ์์๊น์?
ํ์ด์ผ ํ๋ค (c4650c9730861c61c648a6b7f1bbf40e5dfbffae)
Nuget์ ๊ณต์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ๋ณด๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
https://www.nuget.org/packages/System.Security.Cryptography.Xml/4.4.0-preview1-25305-02
Myget์๋ง ์์ต๋๋ค.
https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Security.Cryptography.Xml/4.4.0-preview2-25316-02
๋ค, ์ ๊ฐ ์ฐพ๊ณ ์์๋ ๊ฒ์ ๋๋ค. @danmosemsft ๊ฐ์ฌํฉ๋๋ค!
@leopignataro ๋ฌธ์ ์์ต๋๋ค. "head"์์ ๋นํธ๋ฅผ ์๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. https://github.com/dotnet/cli ์ ํํ์ด์ง์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ์ํ๋ ๊ฒฝ์ฐ zip์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์๋ ค์ฃผ์ญ์์ค. ์ถ์ ์ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ์๊ฐ์ด ์ผ๋ง ๋จ์ง ์์์ต๋๋ค.
์ฐธ๊ณ : ํ์๋ผ์ธ์ ๋ํ ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://github.com/dotnet/corefx/issues/17619#issuecomment -301937346
@danmosemsft ๋์ด ์ธ๊ธ
https://github.com/dotnet/corefx/issues/19198
์ค๋ ๋์ ๋ํ ์์ ์ฌํญ์ ์ ์ํ์ง๋ง ๋ชจ๋ ์๋ฌธ์์ ๋ด ๋ฉ์์ง๊ฐ ๋๋ฝ๋์์ ์ ์์ต๋๋ค.
@leopignataro ๋ฌด์์ ์ํด ์์ ํฉ๋๊น? dotnet/corefx#19198์ ๋ํ ์์ ์ฌํญ์ธ ๊ฒฝ์ฐ ๋ฒ๊ทธ์์ ์ถ์ ํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ๋ฌธ์ ๋ผ๋ฉด ๋ณ๋์ ๋ฌธ์ ๋ฅผ ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ ์ ์์ด ์ด๋๊ฐ์์ ๊ฐ๊ณผ๋์๋ค๊ณ ์๊ฐ๋๋ฉด ํด๋น ์ค๋ ๋์์ ๋ค์ ์ ๊ธฐํ๊ณ ํผ๋๋ฐฑ์ ์์ฒญํ์ญ์์ค.
๋๋ ์ง๊ธ ํผ๋์ค๋ฝ๋ค. System.Security.Cryptography.Xml NuGet ํจํค์ง๋ .NET Framework์ฉ์ด๋ฉฐ ์ด๋ฏธ Dot Net Core v2์ ํฌํจ๋์ด ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. Dot Net Core v2์์ ์ด ๋ค์์คํ์ด์ค๋ฅผ ์ธ์ํ์ง ๋ชปํฉ๋๋ค. ์ ๊ฐ ์๋ชป ๋ค์ ๊ฑด๊ฐ์? ๊ฐ์ฌ ํด์.
@fletchsod-developer ํจํค์ง๋ ์ฃผ๋ก .NET Core์ฉ์ ๋๋ค. ๊ทธ๋ฌ๋ .NET Standard๋ฅผ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ .NET Framework์ .NET Framework ๋ฒ์ ๊ณผ ํตํฉ๋๊ณ .NET Core์ ํจํค์ง ๋ด์์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
SignedXml์ .NET Core์ ๊ธฐ๋ณธ ์ค์น ํ๊ฒฝ์ ๋ฃ์ ๊ณํ์ ์์ต๋๋ค. NuGet์์ ๋ณ๋์ ํจํค์ง๊ฐ ๋๋ ๊ฒ์ด ์ต๊ณ ์ ๋ฐฐํฌ ๋ชจ๋ธ๋ก ๋ณด์ผ ์ ๋๋ก ํ์ ์์ฅ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด์ ํ๊ฐ 1.2์์ Future(@bartonjs์ ์ํด)๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ๋ด ๋๋ค. ์๊ฒฌ์ ์ ์ํ๊ฑฐ๋ ์์ธํ ์ค๋ช ํ ์ ์์ต๋๊น?