Runtime: System.Security.Cryptography.Xml.SignedXml ํด๋ž˜์Šค ์ถ”๊ฐ€

์— ๋งŒ๋“  2015๋…„ 11์›” 01์ผ  ยท  230์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dotnet/runtime

์‹คํ–‰ ๊ณ„ํš

๋ชฉํ‘œ: ์ „์ฒด/Desktop .NET Framework์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋˜๋Š” API ์ œ๊ณต(์ด ์ž‘์—…์˜ ์ผ๋ถ€๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์—†์Œ - ์ŠคํŠธ๋ ˆ์ดํŠธ ํฌํŠธ๋งŒ ํ•ด๋‹น)

๊ณ„ํš:

  • [x] 1. GH์— ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋ผ์ด์„ ์Šค ๋“ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(๋นŒ๋“œ๋˜์ง€ ์•Š์Œ).
  • [x] 2. ์†Œ์Šค ์ฝ”๋“œ ๋นŒ๋“œ ๋งŒ๋“ค๊ธฐ(์ „์ฒด repo ๋นŒ๋“œ์—์„œ ์—ฌ์ „ํžˆ ์ œ์™ธ๋จ)
  • [x] 3. ๋ฐ์Šคํฌํ†ฑ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ˜ธํ™˜ ์ฝ”๋“œ ๊ฒฝ๋กœ ์ œ๊ฑฐ

    • ์†Œ์œ ํ•œ ๋ฉ”์„œ๋“œ์™€ ํ•จ๊ป˜ [RegistryPermission](Utils ๋ฐ SignedXml ํด๋ž˜์Šค)์ด ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

    • Registry, RegistryPermission, RegistryKey ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ฅ˜์™€ ๊ฐ™์€ ๊ธฐํƒ€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๊ด€๋ จ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค(ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฝ”๋“œ ์‚ญ์ œ).

  • [x] 4. ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

    • Desktop ๋ฐ .NET Core ๊ตฌํ˜„ ๊ฐ„์˜ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ๋น„๊ต

  • [x] 5. ์ „์ฒด repo ๋นŒ๋“œ์˜ ์ผ๋ถ€๋กœ ๋งŒ๋“ค๊ณ  ๋ฐฐ์†กํ•ฉ๋‹ˆ๋‹ค!

์ฝ”๋“œ ๋ณ€๊ฒฝ ๊ทœ์น™: .NET Framework๋ฅผ ๋นŒ๋“œํ•˜๊ณ  (์ „์ฒด) .NET Framework์™€ ํ˜ธํ™˜๋˜๋„๋ก ํ•˜๋Š” ๋ฐ ์ ˆ๋Œ€์ ์œผ๋กœ ํ•„์š”ํ•œ ์ฝ”๋“œ ๋ณ€๊ฒฝ๋งŒ ํ—ˆ์šฉ๋˜๋ฉฐ ์ถ”๊ฐ€ ๋ฒ„๊ทธ ์ˆ˜์ •์ด๋‚˜ ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ PR์€ ์ง€๊ธˆ ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌํ•œ ๋ณ€๊ฒฝ์€ ์ดˆ๊ธฐ ํฌํŠธ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„, ์ข‹์€ ํ…Œ์ŠคํŠธ ๋ฒ ๋“œ๊ฐ€ ์žˆ๊ณ  ๊ทธ๋Ÿฌํ•œ ๋ณ€๊ฒฝ์„ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ด์œ ๋กœ ๋” ํฐ ์ฝ”๋“œ/์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ž‘์—…์„ ์ˆ˜ํ–‰/PR ์ œ์ถœํ•˜๊ธฐ ์ „์— ๋จผ์ € ์—ฌ๊ธฐ์—์„œ ๋…ผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ณ„ํš์˜ ์ผ๋ถ€๋ฅผ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ์ค‘๋ณต ์ž‘์—…์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ† ๋ก ์—์„œ ๊ทธ๋ ‡๊ฒŒ ๋งํ•˜์‹ญ์‹œ์˜ค. ์šฐ๋ฆฌ( @steveharter @karelz)๊ฐ€ ๊ท€ํ•˜์—๊ฒŒ ๋ฌธ์ œ๋ฅผ ๊ณต๋™ ํ• ๋‹นํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์›๋ž˜์˜

XML์„ ๋””์ง€ํ„ธ ์„œ๋ช…ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

area-System.Security enhancement up-for-grabs

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด์ •ํ‘œ๊ฐ€ 1.2์—์„œ Future(@bartonjs์— ์˜ํ•ด)๋กœ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ๋ด…๋‹ˆ๋‹ค. ์˜๊ฒฌ์„ ์ œ์‹œํ•˜๊ฑฐ๋‚˜ ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  230 ๋Œ“๊ธ€

Tratcher์—์„œ ์ฐธ์กฐํ•œ ๋Œ€๋กœ ์ด๊ฒƒ์€ ASP.NET 5์—์„œ WsFederation/ADFS์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ASP.NET 4 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ADFS๋ฅผ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ASP.NET 5๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ณ  WsFederation์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋งค์šฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@rschiefer @Tratcher ๊ธ€์Ž„์š”... ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

  • ADFS๋Š” System.Security.Cryptography.Xml.SignedXml์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์ž์ฒด ๊ตฌํ˜„.

    • (๊ทธ๊ฒƒ์€ ์ฃผ๋กœ ์ •์‹ ์  ๊ฑฐ๋ฏธ์ค„์„ ํ„ธ์–ด๋‚ด๊ณ  ADFS ๋ฒ„์ „ 1์„ ์œ„ํ•ด ๊ทธ ํŒ€์— ์žˆ์—ˆ๋˜ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค)

  • System.IdentityModel์€ ํ™•์‹คํžˆ System.Security.Cryptography.Xml์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • (์ฐธ๊ณ  ์†Œ์Šค์˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๋งํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์Šค๋งˆ์ผ:)

  • ์‚ฌ๋žŒ๋“ค์€ System.Security.Cryptography.Xml.SignedXml์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด XmlDocument๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

    • ADFS ๋ฒ„์ „์€ XmlReader, IIRC๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋”ฐ๋ผ์„œ ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ๊ฒƒ์€ CoreFX๊ฐ€ SignedXml์˜ ์ƒˆ๋กœ์šด ๊ตฌํ˜„์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ ๋ฒ„์ „์˜ SignedXml์€ ์ด์ „ ๋ฒ„์ „์˜ SignedXml๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ ์šฐ๋ฆฌ๊ฐ€ ์ด์ „ ๋ฒ„์ „์„ ์œ ์ง€ํ•˜๊ธฐ๋ฅผ ์›ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ตญ ์‚ฌ๋žŒ๋“ค์€ ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์„ ์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋“ค์ด ์ด์ „ ๋ฒ„์ „์„ ์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ .
  • ๊ทธ๋“ค์ด ํ•  ๋•Œ๋ฅผ ์ œ์™ธํ•˜๊ณ .

๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜์ˆ˜๊ป˜๋ผ๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค.

  • ์•„๋ฌด๋„ ์›ํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค๋ฅผ ์ด์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ๊ณผ ํ˜ธํ™˜๋  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ค‘์ง€ํ•˜๊ณ  ๋””์ž์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜๋Š” ๊ฐ€์žฅ ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ด๊ณ  ์—ฌ์ „ํžˆ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ๋„์›€์ด ๋˜์ง€ ์•Š์œผ๋ ค๋ฉด ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘๋ฅผ ์ˆ˜ํ–‰ ํ•˜์‹ญ์‹œ์˜ค.

@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 ์ด ํ† ๋ก ์€ ์˜์‚ฌ ๊ฒฐ์ •์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋งŽ์€ ๋ฐฐ๊ฒฝ์ง€์‹์„ ๊ฐ€์ง„ ์ง€์—ญ ์ „๋ฌธ๊ฐ€๋“ค์ด ์—ฌ๊ธฐ์—์„œ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด ๊ถŒ์žฅ ์‚ฌํ•ญ: ์˜ฌ๋ฐ”๋ฅธ ์กฐ์น˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ฒฝ์šฐ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํฌํŠธ ์—ฐ์Šต ๋™์•ˆ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘๊ณ (ํ…Œ์ŠคํŠธ ์ ์šฉ ๋ฒ”์œ„ ์—†์ด๋„ ๊ฐ€๋Šฅ) ํฌํŠธ ์—ฐ์Šต๊ณผ ๋ณ„๋„๋กœ ๋‚˜์ค‘์— ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์•„, ๊ทธ๋ž˜์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ช‡๋ช‡ ์‚ฌ๋žŒ๋“ค๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆด๊ณ  ๊ณ„ํš์˜ ๋น„๊ณ„๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  • ์œ ํ˜•์„ ๊ณต๊ฐœ๋กœ ๋‘ก๋‹ˆ๋‹ค. (๊ณต๊ฐœํ˜•์ด๊ณ , ์ œ๊ฑฐํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์ด ์Šฌํผ์ง‘๋‹ˆ๋‹ค.)
  • ์ข…๋‹จ ๊ฐ„ SignedXml ํ…Œ์ŠคํŠธ์—์„œ๋Š” (์•„์ง) ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (์‚ฌ์‹ค, ์Œ์„ฑ ํ…Œ์ŠคํŠธ๋Š” ์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค)
  • ๊ทธ๋“ค์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ์ถฉ๋ถ„ํ•ด์•ผ ํ•˜๋Š” ๊ณต๊ฐœ ๋ฉค๋ฒ„๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ์ด๋Š” ๋‚˜๋จธ์ง€ ๋ณ€ํ™˜ ์œ ํ˜•์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ์–ด๋–ค ์ด์œ ๋กœ ์ž…๋ ฅ์„ ์ˆ˜๋ฝํ•˜๋Š” ๋ณ€ํ™˜์ด ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ด๋ฉด ์ด์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ด๋Š” "์ถฉ์กฑํ•  ์ˆ˜ ์—†๋Š” ๋ณต์žกํ•œ ์ปดํŒŒ์ผ ์ข…์†์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ"์—๋„ ์ ์šฉ๋˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๊ทธ ์žฅ์• ๋ฌผ์„ ๋„˜์–ด์„ฐ์Šต๋‹ˆ๋‹ค.)

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์œ ํ˜•์ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก 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 )๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด ์ •๋ณด์™€ ํ•จ๊ป˜ ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“œ์„ธ์š”.

  • ๋‹น์‹ ์˜ OS
  • ๋‹น์‹ ์˜ VS ๋ฒ„์ „
  • ๋‹น์‹ ์ด ํ•œ ์ •ํ™•ํ•œ ๋‹จ๊ณ„
  • ์ „์ฒด ๋กœ๊ทธ(ํฐ ๊ฒฝ์šฐ ์š”์ ์— ํ‘œ์‹œ)

๋‚˜๋Š” 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์ด ํฌํ•จ๋œ ํŒจํ‚ค์ง€์˜ ๋งํฌ๋ฅผ ๋ณด๋‚ด์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@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 ์–ด๋–ป๊ฒŒ

  1. cmd.exe๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  2. pushd corefx\repo\path
  3. git pull
  4. git clean -fdx - ๋‚จ์€ ํŒŒ์ผ์˜ ์ €์žฅ์†Œ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค(๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค)
  5. Windows๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ 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์—์„œ ๋ณ„๋„์˜ ํŒจํ‚ค์ง€๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด ์ตœ๊ณ ์˜ ๋ฐฐํฌ ๋ชจ๋ธ๋กœ ๋ณด์ผ ์ •๋„๋กœ ํ‹ˆ์ƒˆ ์‹œ์žฅ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰