Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • wine/wine
  • rbernon/wine
  • stefan/wine
  • FireBurn/wine
  • alesliehughes/wine
  • zhiyi/wine
  • huw/wine
  • jsikorski/wine
  • hmc/wine
  • dadangnh/wine
  • epo/wine
  • dlesho/wine
  • DarkShadow44/wine
  • iamahuman/wine
  • jacek/wine
  • mstorsjo/wine
  • gofman/wine
  • alexhenrie/wine
  • giomasce/wine
  • tclem/wine
  • besentv/wine
  • dlehman25/wine
  • aeikum/wine
  • cdavis5e/wine
  • sbaars/wine
  • baskanov/wine
  • pperdigao/wine
  • DavidHusicka/wine
  • DadSchoorse/wine
  • gverm/wine
  • bshanks/wine
  • gonzoMD/wine
  • Mystral/wine
  • tmatthies/wine
  • zlice/wine
  • AndreRH/wine
  • madewokherd/wine
  • zfigura/wine
  • fgouget/wine
  • nsivov/wine
  • ElementalWarrior/wine
  • piotr/wine
  • timozuccarello/wine
  • DavidCurtiss/wine
  • cmcadams/wine
  • davidebeatrici/wine
  • hans/wine
  • insn/wine
  • danrm/wine
  • jklemann/wine
  • saedo/wine
  • sgwaki/wine
  • puetzk/wine
  • bernhardu/wine
  • ReDress/wine
  • jlucfarias/wine
  • sloper42/wine
  • ivyl/wine
  • zhui/wine
  • julliard/wine
  • ClearlyClaire/wine
  • Alexander-Wilms/wine
  • rndtrash/wine
  • redmcg/wine
  • jkfloris/wine
  • maljaf/wine
  • Tuupertunut/wine
  • bsjeon/wine
  • tati/wine
  • whydoubt/wine
  • doitsujin/wine
  • shaunren/wine
  • szanni/wine
  • tobi.goergens/wine-cabinet-patch
  • winspool/wine
  • olivierfrdierick/wine
  • linkmauve/wine
  • jin-king1/wine
  • yeyeshun/wine
  • sulix/wine
  • bgc/wine
  • fanwenjie/wine
  • IncubusRK/wine
  • js6pak/wine
  • AurimasF/wine
  • etaash.mathamsetty/wine
  • hverbeet/wine
  • Fox2Code/wine
  • jhol/wine
  • jrueger/wine
  • afrantzis/wine
  • lauri.kentta/wine
  • ehoover/wine
  • cdenton/wine
  • jkloetzke/wine
  • baryluk/wine
  • restet/wine-personal
  • orudge/wine
  • Gcenx/wine
  • mstefani/wine
  • hibbsncc1701/wine
  • jchw/wine
  • moceap/wine
  • Skryptonyte/wine
  • marzent/wine
  • msmeissn/wine
  • learn-more/wine
  • logos128/wine
  • xe/wine
  • florian-kuebler/wine
  • eason329/wine
  • gang65/wine
  • binarymaster/wine
  • nbosio1001/wine
  • sh.owais95/wine
  • yaoyuan.0553/wine
  • AnthonyLaurienti/wine
  • mivanchev/wine
  • Hi-Angel/wine
  • vt/wine
  • wyrquill/wine
  • waynus/wine
  • wuliande/wine
  • yao.yuan.wn/wine
  • K1K1/wine
  • lukehutch1027/wine
  • etang-cw/wine
  • Josueblanco/wine
  • jplotz/wine
  • j20001970/wine
  • jsm174/wine
  • aricstewart/wine
  • uncoveryoureyestheresnosun/wine
  • VitorRamos/wine
  • 0e4ef622/wine
  • tj4048750/wine
  • xantares/wine
  • maxfigura/wine
  • sanane/wine
  • juniorjr9345/wine
  • lucaspereira1234/wine
  • gerald/wine
  • lepemiguel32/wine
  • caibb2018/wine
  • CNB_Kevin/wine
  • thc13/wine
  • jaihysc/wine
  • youngsecurity/wine
  • chendeqiang1024/wine
  • rhendric/wine
  • databoose/wine
  • memory-thrasher/wine
  • salman.tajik22/wine
  • CowFroggers/wine
  • kbdharun/wine
  • dreamer/wine
  • babyjoey711/wine
  • ripxorip/wine
  • PSzczepanski1996/wine
  • steveshe006/wine
  • joshua/wine
  • cmccarthy/wine
  • tomjansen/wine
  • sonyps5201314/wine
  • katelynnking4281/wine
  • dhary686/wine
  • mathematician/wine
  • rhabacker/wine
  • steveschnepp/wine
  • nekotekina/wine
  • Aaron1011/wine
  • catsout/wine
  • kasper93/wine
  • beef331/wine
  • ESD/wine
  • sarosib/wine
  • ghurmcardash/wine
  • AMZN-hgoffin/wine
  • gtmikw/wine
  • Keming/wine
  • dpjh747-gl/wine
  • tzluo/wine
  • rfz/wine
  • illia.a.polishchuk/wine
  • new_kleth/wine
  • serkan-maker/wine
  • w-flo/wine
  • mikayahlevi/wine
  • nulleve/wine
  • pgruebele/wine
  • athiele/wine
  • paparaha4/wine
  • novenary/wine
  • Plavil/wine
  • longjunyu/wine
  • chrisli/wine
  • samkottler/wine
  • danielzgtg/wine
  • twcassel/wine
  • guo/wine
  • didier31/wine
  • Zhaoyi/wine
  • twhitehead/wine
  • svyatpro/wine
  • infyquest/wine-iq-devel
  • sebres/wine
  • endrift/wine
  • zhengbl/wine
  • joelikeyan/wine
  • IsaacMarovitz/wine
  • LouiseTheGoldenGoddess/wine
  • SergeGautherie/wine
  • Klittiklatsch/wine
  • ldhacker/wine
  • dk1006498/wine
  • ishitatsuyuki/wine
  • h3c/wine
  • wincenty.bandyta41/wine
  • ayhankus482/wine
  • q4a/wine
  • mjgarton/wine
  • agusev/wine
  • vovams/wine
  • shardulsb08/wine
  • lylythechosenone/wine
  • artemist/wine
  • dropbear/wine
  • Cherser-s/wine
  • smayr/wine
  • loveptong/wine
  • chendeqiang/wine
  • gaber139/wine
  • shytzedaka/wine
  • ghkmufc/wine
  • TornadoCookie/wine
  • klownwolfman/wine
  • bylaws/wine
  • vitorhnn/wine
  • mide1337/wine
  • mewinkler/wine
  • firelzrd/wine
  • Samsuper/wine
  • kkartaltepe/wine
  • petravion/wine
  • Maaka00524/jacob-wine
  • petrathekat/wine
  • dj/wine
  • liam-middlebrook/wine
  • padolkarlucky/wine
  • maarten/wine
  • yhd986/wine
  • linkmecry/wine
  • tehrantoday/wine
  • xuxin12345/wine
  • dmjc/wine
  • sedwards/wine
  • hanslehnert/wine
  • 3ts75/wine
  • EkaterinePapava/wine
  • lav/wine
  • lygstate/wine
  • mxkrsv/wine
  • xutaxkamay/wine
  • cbialorucki/wine
  • yshui/wine
  • baikaishiuc/wine
  • HuwCampbell/wine
  • llde/wine
  • rockdrilla/wine
  • aidanhs/wine
  • SwimmingTiger/wine
  • fvalasiad/wine
  • zsoltiv/wine
  • mailnew4ster/wine
  • ake.rehnman/wine
  • IDocin/wine
  • dmitry/wine
  • Cthuflu/wine
  • corngood/wine
  • whindsaks/wine
  • telans/wine
  • DmitrySokolov/wine
  • Pospelove/wine
  • ellingtonsantos/wine
  • roro/wine
  • wurenny/wine
  • KokoseiJ/wine
  • amurzeau/wine
  • spazzymoto/wine
  • searchingin/wine
  • marler8997/wine
  • Alcaro/wine
  • aunali1/wine
  • snaccslocc420/wine
  • ajkhoury/wine
  • qsniyg/wine
  • Matheus-TestUser1/wine
  • adamrehn/wine
  • brobston/wine
  • aalyaev/wine
  • thongthai/wine
  • j.bayer1988/wine
  • skitt/wine
  • benben/wine
  • ahmouse15/wine
  • achurch/wine
  • mfaqiri2/wine
  • yseo/wine
  • kingjinni/wine
  • userid0x0/wine
  • titan/wine
  • Komoszek/wine
  • GamzeeRakoon/wine
  • joanluc/wine
  • Alan/wine
  • meshine/wine
  • EBADF/wine
  • vibhavp/wine
  • quininer/wine
  • pawelulita/wine
  • muek2211/wine
  • chenhaoyang/wine
  • nishiyama/wine
  • silviuxgaming/wine
  • nell/wine
  • 29jm/wine
  • arilou/wine
  • Mini-Gaunt/wine
  • DodoGTA/wine
  • davispuh/wine
  • mzent/wine
  • arakmar/wine
  • number201724/wine
  • yhd986/wine-up
  • rpisl/wine
  • zp1/wine-zp-cs-464
  • h0tc0d3/wine
  • Snowiiii/wine
  • gabrielb/wine
  • PureBulb/wine
  • OO/wine
  • Clara/wine
  • Saancreed/wine
  • enolp/wine
  • arthunix/wine
  • halfline/wine
  • carlo-bramini/wine
  • jfmu/wine
  • russelltg/wine
  • ntay/wine
  • YellowOnion/wine
  • niversesu/wine
  • gilvbp/wine
  • tingling0072/wine
  • DandD1517/wine
  • rastos/add-GetAnycastIpAddressTable
  • gnif/wine
  • gibsonpil/wine
  • antenabr2/wine
  • kvashis/wine
  • CKolle/wine
  • kubni/wine
  • ten0s/wine
  • Yvonne8873/wine
  • kurikaesu/wine
  • minggr/wine
  • JohnSebastienNadeau/wine
  • karshnicholas/wine
  • SamB/wine
  • apgrc/wine
  • Samiklom/wine
  • llyyr/wine
  • nberner/wine
  • katharinechui/wine
  • kirill.zhumarin/wine
  • vaxerski/wine
  • infiniteloop/wine
  • K0bin/wine
  • arethusa/wine
  • mrdeathjr28/wine
  • dank_meme/wine
  • dh/wine
  • tuomasjjrasanen/wine
  • mmcdonnell/wine
  • mxnny00/wine-manjaro-arch-compatibility
  • Joan/wine
  • g.mo.alcauter/wine
  • zhenbo_li/wine
  • tsmx/wine
  • xaqumin/wine
  • peterjc123/wine
  • ruslangaripov/wine
  • blyss/wine
  • xanathar/wine
  • michael.bond/wine
  • Quix0r/wine
  • sinisa.susnjar/wine
  • Rapid/wine
  • theli.ua/wine
  • shaun.din/wine
  • zhaohongxin/wine
  • dylan.eskew/wine
  • humbertoperezs991/wine
  • vaevi/wine
  • Riesi/wine
  • francisdb/wine
  • 1480c1/wine
  • trcrsired/wine
  • npatt/wine
  • muhammmadalli/wine9.0
  • Czahrien/wine
  • nilsen.jonas/wine
  • underdogest/wine
  • djordjem/wine
  • frubin/wine
  • LucasChollet/wine
  • lipengfei-loongson/wine
  • JacobCzekalla/wine-fork-jacob
  • omar_elantil/wine
  • lumarel/wine
  • principeagustin/wine
  • gotzl/wine
  • OneTester250376/wine
  • austin987/wine
  • unknown62627/wine
  • navi/wine
  • somedevfox/wine
  • notaz/wine
  • fcasas/wine
  • Asteroz/wine
  • MariusSchiffer/wine
  • kevinrmartinez/wine-devel
  • St1gven/wine
  • maarten256/wine
  • rcstarr87/wine
  • tinozzo123/wine
  • GermanAizek/wine
  • spencerwallace/wine
  • schloegl/wine
  • giuppococco/wine
  • shayan7878/wine
  • N080DY12/wine
  • ralf.habacker/wine
  • oh-ok/wine
  • johnporter/wine
  • Low-power/wine
  • thelande/wine
  • riyu12383/wine
  • kubapet/wine
  • Ivan_83/wine
  • SmithGoll/wine
  • gmesmer/wine
  • akarisu.de/wine
  • jwffrey9046/wine
  • anders/wine
  • markbhasawut/wine
  • dy-tea/wine
  • Benjamin_Loison/wine
  • frmdstryr/wine
  • zzam/wine
  • haydenhestad/wine
  • Deppy04/wine
  • osbre/wine
  • CharlottePabst/wine
  • SunlitTango/wine
  • ritalat/wine
  • AlexeyLushnikov/wine
  • mickdermack/wine
  • s1UMBa/wine
  • huangqinjin/wine
  • caseyr297/wine
  • d1saster/wine
  • ayufdh222/wine
  • janstrakowski/wine
  • petur/wine
  • matheus.venturini/wine-fix-ohm-sign
  • rayrapetyan/wine
  • xiaotong/wine
  • ovarley1/wine
  • dos1/wine
  • BZZZZ/wine
  • joesoroka/wine
  • toadking/wine
  • JoshuaBrest/wine
  • elias/wine
  • michele.dionisio/wine
  • garlett/wine-send-arp
  • eugenemcardle/wine
  • hugwijst/wine
  • whrvt/wine
  • loisgomez/wine
  • ramleejo/wine
  • self/wine
  • fr33z00/wine
  • JoeS209/wine
  • JacKeTUs/wine
  • nak.ak2015/wine
  • morgwai/wine
  • funfunctor/wine
  • donnyjoe/wine
  • sitter/wine
  • atticf/wine
  • xipster/wine
  • sebastian/wine
  • AlexanderWillner/wine
  • yaoyongjie/wine
  • wayne/wine
  • AMark/wine
  • zamaudio/wine
  • TomaszPakula/wine
  • Freakness109/wine
  • amorozov/wine
  • HP/wine
  • danlm/wine
  • rariema/wine
  • Biswa96/wine
  • rlippmann/wine
  • yangkun/wine
  • greyghoster/wine
  • toxieainc/wine
520 results
Show changes
Commits on Source (5308)
[attr]generated gitlab-generated linguist-generated=true
# generated by autotools
configure generated
include/config.h.in generated
# generated by dlls/dsound/make_fir
dlls/dsound/fir.h generated
# generated by dlls/opencl/make_opencl
dlls/opencl/opencl.spec generated
dlls/opencl/opencl_types.h generated
dlls/opencl/pe_thunks.c generated
dlls/opencl/unix_thunks.c generated
dlls/opencl/unixlib.h generated
# generated by dlls/opengl32/make_opengl
dlls/opengl32/opengl32.spec generated
dlls/opengl32/thunks.c generated
dlls/opengl32/unix_thunks.c generated
dlls/opengl32/unixlib.h generated
include/wine/wgl.h generated
# generated by dlls/winevulkan/make_vulkan
dlls/vulkan-1/vulkan-1.spec generated
dlls/winevulkan/loader_thunks.c generated
dlls/winevulkan/loader_thunks.h generated
dlls/winevulkan/vulkan_thunks.c generated
dlls/winevulkan/vulkan_thunks.h generated
dlls/winevulkan/winevulkan.json generated
dlls/winevulkan/winevulkan.spec generated
include/wine/vulkan.h generated
# generated by tools/make_requests
include/wine/server_protocol.h generated
server/request_handlers.h generated
server/request_trace.h generated
# generated by tools/make_specfiles
dlls/ntdll/ntsyscalls.h generated
dlls/win32u/win32syscalls.h generated
# generated by tools/make_unicode
dlls/dwrite/bracket.c generated
dlls/dwrite/direction.c generated
dlls/dwrite/linebreak.c generated
dlls/dwrite/mirror.c generated
dlls/dwrite/scripts.c generated
dlls/dwrite/scripts.h generated
dlls/dwrite/shapers/arabic_table.c generated
dlls/gdi32/uniscribe/bracket.c generated
dlls/gdi32/uniscribe/direction.c generated
dlls/gdi32/uniscribe/indicsyllable.c generated
dlls/gdi32/uniscribe/linebreak.c generated
dlls/gdi32/uniscribe/mirror.c generated
dlls/gdi32/uniscribe/shaping.c generated
dlls/kernelbase/kernelbase.rgs generated
dlls/tzres/tzres.rc generated
dlls/win32u/vertical.c generated
dlls/wineps.drv/direction.c generated
dlls/wineps.drv/vertical.c generated
nls/*.nls generated
......@@ -25,6 +25,8 @@ Dimitrie O. Paun <dimi@bigfoot.com>
Dimitrie O. Paun <dimi@lattica.com>
EA Durbin <eadurbin@freebsd.org>
Eduardo García <eduardo.garcia@gmx.com>
Elizabeth Figura <z.figura12@gmail.com>
Elizabeth Figura <zfigura@codeweavers.com>
Erich Hoover <erich.e.hoover@gmail.com>
Erich Hoover <erich.e.hoover@wine-staging.com>
Erwin Wolff <erwinwolffnl@microformatica.com>
......@@ -136,6 +138,7 @@ Sergey Turchanov <turchanov@otvprim.ru>
Sergey Turchanov <turchanov@usa.net>
Stefan Dösinger <stefan@codeweavers.com>
Stephan Beuze <fbiggun@hotmail.com>
Stéphane Bacri <stephanebacri@gmail.com>
Stéphane Loeuillet <leroutier@gmail.com>
Stephen Langasek <vorlon@dodds.net>
Sunil Mohan Adapa <sunilmohan@fsf.org.in>
......@@ -156,7 +159,6 @@ William Poetra Yoga Hadisoesen <williampoetra@yahoo.com>
Won Kyu Park <wkpark@kldp.org>
Yuri Kozlov <yuriy.kozlov@gmail.com>
Zachary Brown <zac@zacbrown.org>
Zebediah Figura <zfigura@codeweavers.com>
Zoltan Nagy <nagyzoli@drotposta.hu>
unidentified <9700584@cs.stadia.fi>
unidentified <develop@stueben.com>
......
This diff is collapsed.
......@@ -16,8 +16,10 @@ Adam Buchbinder
Adam D. Moss
Adam Gashlin
Adam Gundy
Adam Markowski
Adam Martinson
Adam Petaccia
Adam Rehn
Adam Sacarny
Adam Stachowicz
Adam Stoelting
......@@ -25,12 +27,14 @@ Adrian Bunk
Adrian Harvey
Adrian Thiele
Adrian Thurston
Agustin Principe
Aida Jonikienė
Aidan Thornton
Ake Rehnman
Akihiro Sagawa
Akira Nakagawa
Alam Arias
Alanas Tebuev
Alasdair Sinclair
Alastair Bridgewater
Alastair McKinstry
......@@ -74,6 +78,7 @@ Alexandros Frantzis
Alexandru Balut
Alex Arazi
Alex Busenius
Alexey Lushnikov
Alexey Markachev
Alexey Prokhin
Alexey Spiridonov
......@@ -101,6 +106,7 @@ Anastasios Simeonidis
Anatoly Lyutin
Anders Bergh
Anders Jonsson
Anders Kjersem
Anderson Lizardo
Andoni Morales Alastruey
András Kovács
......@@ -176,6 +182,7 @@ Arkadiusz Hiler
Arno Teigseth
Artem Reznikov
Artur Szymiec
Attila Fidan
Augusto Arcoverde da Rocha
Aurélien Inacio
Aurimas Fischer
......@@ -198,6 +205,7 @@ Benjamin Arai
Benjamin Cutler
Benjamin Hodgetts
Benjamin Kramer
Benjamin Mayes
Ben Klein
Ben Mayhew
Ben Peddell
......@@ -293,6 +301,7 @@ Charles M. Hannum
Charles Suprin
Charles Vaughn
Charles Welton
Charlotte Pabst
Cheer Xiao
Chen Yuan
Chia-I Wu
......@@ -463,6 +472,7 @@ Dongwan Kim
Don Kelly
Donna Whisnant
Donn Miller
Đorđe Mančić
Doug Kingston
Douglas Ridgway
Doug Lyons
......@@ -475,6 +485,7 @@ Duncan C Thomson
Dusan Lacko
Dustin Brody
Dustin Navea
Dylan Donnell
Dylan Smith
Dylan Taft
EA Durbin
......@@ -488,8 +499,11 @@ Eduard Permyakov
EG Galano
Ekaterine Papava
Elias Benali
Elias Norberg
Elias Ross
Elie Morisse
Elizabeth Figura
Ellington Santos
Emilio Cobos Álvarez
Emmanuel Maillard
Enol Puente
......@@ -522,6 +536,7 @@ Etaash Mathamsetty
Ethan Chen
Ethan Lee
Eugene Mayevski
Eugene McArdle
Eugeny Gorelov
Evan Deaubl
Evan G. Parry
......@@ -561,10 +576,12 @@ Florian Tobias Schandinat
Florian Will
Floris Renaud
Fons Botman
Fotios Valasiadis
Francesco Di Punzio
Francesco Noferi
Francis Beaudet
Francisco Casas
Francis De Brabandere
Francois Boisvert
François Dorin
François Gouget
......@@ -586,6 +603,7 @@ Gabriel Garcia
Gabriel Ivăncescu
Gael de Chalendar
Gal Topper
Garrett Mesmer
Gaurav Jain
Gautam Jain
Gavriel State
......@@ -647,6 +665,7 @@ Hagop Hagopian
Haidong Yu
Haithem Hmida
Hajime Segawa
Hajo Nils Krabbenhöft
Hamza Lakhani
Hann-huei Chiou
Hannu Valtonen
......@@ -671,6 +690,7 @@ Henri Verbeet
Henry Goffin
Henry Kroll III
Herbert Rosmanith
Herman Semenov
Hermès Bélusca-Maïto
Hernan Rajchert
Hervé Chanal
......@@ -687,6 +707,7 @@ Hiroshi Miura
Hiroshi Tanabe
Hleb Valoska
Hongbo Ni
Hongxin Zhao
Howard Abrams
Howell Tam
Hua Meng
......@@ -736,6 +757,7 @@ Jacek Caban
Jacek Konieczny
Jacob Czekalla
Jacob Lifshay
Jacob Pfeiffer
Jaco Greeff
Jactry Zeng
Jaekil Lee
......@@ -745,6 +767,7 @@ Jaka Kranjc
Jake Hamby
Jakob Eriksson
Jakub Bartmiński
Jakub Petrzilka
Jakub Staroń
James Abbatiello
James Beddek
......@@ -863,6 +886,7 @@ Jody Goldberg
Joel Holdsworth
Joel Parker
Joerg Schiermeier
Joe Souza
Johan Dahlin
Johan Gardell
Johan Gill
......@@ -1006,6 +1030,7 @@ Kevin Puetz
Kevin Schmidt
Kieran Clancy
Kieran Duggan
Kieran Geary
Kim Geonwoo (김건우)
Kim Jung Eon
Kim Lilliestierna
......@@ -1044,6 +1069,7 @@ Krzysztof Bogacki
Krzysztof Foltman
Krzysztof Kotlenga
Krzysztof Nowicki
Kun Yang
Kurt Kartaltepe
Kusanagi Kouichi
Kyle Luna
......@@ -1087,6 +1113,7 @@ Louis Lenders
Louis Philippe Gagnon
L. Rahyen
Luca Bennati
Lucas Chollet
Lucas Fialho Zawacki
Lucian Poston
Luc Tourangeau
......@@ -1109,6 +1136,7 @@ Maciek Kaliszewski
Madhura Sahasrabudhe
Magnus Lundborg
Magnus Olsen
Makarenko Oleg
Maksim Kuleshov
Malte Starostik
Manfred Weichel
......@@ -1158,6 +1186,7 @@ Martin Fuchs
Martin Garton
Martin Jesper Low Madsen
Martin Liska
Martino Fontana
Martin Payne
Martin Petricek
Martin Pilka
......@@ -1195,6 +1224,7 @@ Matthew Robertson
Matthew Tran
Matthias Derer
Matthias Fechner
Matthias Gorzellik
Matthias Kupfer
Matt Jones
Matt Robinson
......@@ -1216,6 +1246,7 @@ Michael Cardenas
Michael C. Maggio
Michael Cronenworth
Michael Curran
Michael Ehrenreich
Michael Fritscher
Michael Gardiner
Michael Geddes
......@@ -1227,6 +1258,7 @@ Michael Jacobsen
Michael Jung
Michael Karcher
Michael Kaufmann
Michael Lelli
Michael Lin
Michael Martin
Michael McCormack
......@@ -1351,6 +1383,7 @@ Olli-Pekka Wallin
Ondrej Macek
Onno Hovers
Orhan Kavrakoğlu
Orin Varley
Orion Poplawski
Ori Pessach
Ove Kåven
......@@ -1445,6 +1478,7 @@ Petr Sumbera
Petr Tesarik
Petr Tomasek
Petter Reinholdtsen
Pétur Runólfsson
Phil Cole
Phil Costin
Philip Allison
......@@ -1472,6 +1506,7 @@ Pim Bollen
Piotr Caban
Piotr Chruściel
Piotr Kleski
Piotr Morgwai Kotarbinski
Piotr Pawłow
Porot Mo
Przemysław Białek
......@@ -1492,6 +1527,7 @@ Ralf S. Engelschall
Ramon Garcia
Randy Weems
Raphael Junqueira
Raphael Riemann
Rastislav Stanik
Raul Dias
Raul Fernandes
......@@ -1528,6 +1564,7 @@ Rizsanyi Zsolt
Robert 'Admiral' Coeyman
Robert Dickenson
Robert Key
Robert Lippmann
Robert Lunnon
Robert McDonald
Robert Millan
......@@ -1575,6 +1612,7 @@ Ross Biro
Royal Chan
Royce Mitchell III
Roy Shea
Rozhuk Ivan
Rudolf Kastl
Rudolf Mayerhofer
Ruei-Yuan Lu
......@@ -1614,13 +1652,17 @@ Sean Sube
Sean Young
Sebastián Aedo
Sebastian Gasiorek
Sebastian Krzyszkowiak
Sebastian Lackner
Sebastian Mayr
Sebastian Scheibner
Sébastien Ramage
Semenov Herman (Семенов Герман)
Seong-ho Cho
Serge Gautherie
Sergei Bolotov
Sergei Butakov
Sergei Chernyadyev
Sergei Ivanov
Sergei Trofimovich
Serge S. Spiridonoff
......@@ -1637,6 +1679,7 @@ Shanren Zhou
Shaun Morris
Shaun Ren
Shawn M. Chapla
Shengdun Wang
Sheri Steeves
Shi Quan He
Shuai Meng
......@@ -1654,6 +1697,7 @@ Sin-ta Hsiea
Slava Monich
Slaven Rezic
Snorri Sturluson
Spencer Wallace
Srivatsa Kanchi, R
Stanislav Motylkov
Stas Cymbalov
......@@ -1675,7 +1719,7 @@ Stefan Silviu
Stefan Stranz
Steffen Moeller
Stephan Beuze
Stephane Bacri
Stéphane Bacri
Stéphane Loeuillet
Stephane Lussier
Stephan Rose
......@@ -1703,6 +1747,7 @@ Sveinar Søpler
Sven Baars
Sven Hesse
Sven Paschukat
Sven Püschel
Sven Verdoolaege
Sylvain Bouchard
Sylvain Petreolle
......@@ -1768,11 +1813,13 @@ Tomasz Nowiński
Tom Bech
Tom Brus
Tom Fogal
Tom Helander
Tom Hughes
Tommy Schultz Lassen
Tom Wickline
Tony Lambregts
Tony Wasserka
Topi-Matti Ritala
Torbjörn Andersson
Torge Matthies
Toshiaki Hirose
......@@ -1794,6 +1841,7 @@ Ulrich Weigand
Ulrik Dickow
Uwe Bonnes
Vadim Druzhin
Vadim Kazakov
Vadim Strizhevsky
Vahid Pourlotfali
Valentin Gabriel Mitrea
......@@ -1823,6 +1871,7 @@ Vitaly Budovski
Vitaly Lipatov
Vitaly Perov
Vit Hrachovy
Vitor Ramos
Vladdy Impaler
Vladimir Bespalov
Vladimir Pankratov
......@@ -1846,6 +1895,7 @@ Wei Xie
Wesley Filardo
Wilbur N. Dale
Wilfried Pasquazzo
William Horvath
William Knop
William Lahti
William Magro
......@@ -1896,7 +1946,6 @@ Zachary Brown
Zach Goldberg
Zach Gorman
Zach Smith
Zebediah Figura
Zhangrong Huang
Zhang Shuai
Zhan Jianyu
......
Copyright (c) 1993-2024 the Wine project authors (see the file AUTHORS
Copyright (c) 1993-2025 the Wine project authors (see the file AUTHORS
for a complete list)
Wine is free software; you can redistribute it and/or modify it under
......
......@@ -3,10 +3,10 @@
List of Wine subsection maintainers
When submitting patches to Wine, the guidelines at
<https://wiki.winehq.org/SubmittingPatches> should be followed. This file
contains a list of maintainers for subsections of Wine. If you have
questions about your work in an area of Wine, you may find a list of
knowledgeable people here.
<https://gitlab.winehq.org/wine/wine/-/wikis/Submitting-Patches>
should be followed. This file contains a list of maintainers for
subsections of Wine. If you have questions about your work in an area
of Wine, you may find a list of knowledgeable people here.
Many areas of Wine don't have a specific maintainer, although there may
be people with knowledge of those areas. If an area is not listed here
......@@ -37,7 +37,6 @@ F: dlls/ntdll/signal_arm*
F: programs/winedbg/be_arm*
Audio I/O
P: Andrew Eikum <coldpie@fastmail.com>
P: Huw Davies <huw@codeweavers.com>
F: dlls/dsound/
F: dlls/mmdevapi/
......@@ -50,6 +49,11 @@ F: dlls/x3daudio*/
F: dlls/xapofx*/
F: dlls/xaudio*/
Bluetooth support
M: Vibhav Pant <vibhavp@gmail.com>
F: dlls/winebth.sys/
F: dlls/bluetoothapis/
Common Controls Library
P: Nikolay Sivov <nsivov@codeweavers.com>
P: Zhiyi Zhang <zzhang@codeweavers.com>
......@@ -66,7 +70,7 @@ P: Henri Verbeet <hverbeet@codeweavers.com>
F: dlls/d2d*/
Direct3D
M: Zebediah Figura <z.figura12@gmail.com>
M: Elizabeth Figura <zfigura@codeweavers.com>
M: Jan Sikorski <jsikorski@codeweavers.com>
P: Henri Verbeet <hverbeet@codeweavers.com>
P: Stefan Dösinger <stefan@codeweavers.com>
......@@ -106,7 +110,7 @@ F: dlls/dpnet/
F: dlls/dpwsockx/
DirectShow
M: Zebediah Figura <z.figura12@gmail.com>
M: Elizabeth Figura <zfigura@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/amstream/
F: dlls/devenum/
......@@ -159,7 +163,7 @@ M: Marcus Meissner <marcus@jet.franken.de>
F: dlls/gphoto2.ds/
GStreamer multimedia backend
M: Zebediah Figura <z.figura12@gmail.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/winegstreamer/
......@@ -173,7 +177,7 @@ F: dlls/mouhid.sys/
F: dlls/winehid.sys/
HTTP server
M: Zebediah Figura <z.figura12@gmail.com>
M: Elizabeth Figura <zfigura@codeweavers.com>
F: dlls/httpapi/
F: dlls/http.sys/
......@@ -206,28 +210,6 @@ F: dlls/winexinput.sys/
F: dlls/winmm/joystick.c
F: dlls/xinput*/
Media format conversion
P: Andrew Eikum <coldpie@fastmail.com>
F: dlls/*.acm/
F: dlls/msacm32/
Media Foundation GStreamer backend
M: Rémi Bernon <rbernon@codeweavers.com>
P: Nikolay Sivov <nsivov@codeweavers.com>
P: Zebediah Figura <z.figura12@gmail.com>
F: dlls/mf/tests/transform.c
F: dlls/winegstreamer/aac_decoder.c
F: dlls/winegstreamer/color_convert.c
F: dlls/winegstreamer/media_source.c
F: dlls/winegstreamer/mfplat.c
F: dlls/winegstreamer/resampler.c
F: dlls/winegstreamer/video_decoder.c
F: dlls/winegstreamer/video_processor.c
F: dlls/winegstreamer/wg_sample.c
F: dlls/winegstreamer/wg_transform.c
F: dlls/winegstreamer/wma_decoder.c
F: dlls/winegstreamer/wmv_decoder.c
Microsoft C Runtime
M: Piotr Caban <piotr@codeweavers.com>
F: dlls/concrt140/
......@@ -238,7 +220,7 @@ F: dlls/vcruntime140_1/
MSI installers
M: Hans Leidekker <hans@codeweavers.com>
P: Zebediah Figura <z.figura12@gmail.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
F: dlls/msi/
Netstat
......@@ -288,7 +270,7 @@ P: Huw Davies <huw@codeweavers.com>
F: dlls/oleaut32/typelib.c
Plug and Play
P: Zebediah Figura <z.figura12@gmail.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
F: dlls/newdev/
F: dlls/ntoskrnl.exe/pnp.c
F: dlls/setupapi/devinst.c
......@@ -310,9 +292,13 @@ F: dlls/riched20/
RPC Runtime
P: Huw Davies <huw@codeweavers.com>
P: Zebediah Figura <z.figura12@gmail.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
F: dlls/rpcrt4/
Scripting runtime components
P: Nikolay Sivov <nsivov@codeweavers.com>
F: dlls/scrrun/
Theming
M: Zhiyi Zhang <zzhang@codeweavers.com>
F: dlls/light.msstyles/
......@@ -344,12 +330,11 @@ WebBrowser control
M: Jacek Caban <jacek@codeweavers.com>
F: dlls/ieframe/
F: dlls/mshtml/
F: dlls/shdocvw/
WIDL
P: Huw Davies <huw@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
P: Zebediah Figura <z.figura12@gmail.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
F: tools/widl/
Windows Imaging Component
......@@ -365,7 +350,7 @@ F: dlls/wbemprox/
F: dlls/wmiutils/
Windows Media Format
M: Zebediah Figura <z.figura12@gmail.com>
M: Elizabeth Figura <zfigura@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/wmp/
F: dlls/wmvcore/
......@@ -427,11 +412,11 @@ F: */
Stable Branch
M: Michael Stefaniuc <mstefani@winehq.org>
W: https://wiki.winehq.org/StableRules
W: https://gitlab.winehq.org/wine/wine/-/wikis/Stable-Rules
Staging Branch
M: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
P: Zebediah Figura <z.figura12@gmail.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
P: Paul Gofman <gofmanp@gmail.com>
P: Erich E. Hoover <erich.e.hoover@wine-staging.com>
W: https://wine-staging.com/
......@@ -46,7 +46,7 @@ To compile and run Wine, you must have one of the following:
- FreeBSD 12.4 or later
- Solaris x86 9 or later
- NetBSD-current
- Mac OS X 10.8 or later
- macOS 10.12 or later
As Wine requires kernel-level thread support to run, only the operating
systems mentioned above are supported. Other operating systems which
......@@ -65,11 +65,11 @@ support kernel threads may be supported in the future.
Make sure you have the USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG options
turned on in your kernel.
**Mac OS X info**:
**macOS info**:
You need Xcode/Xcode Command Line Tools or Apple cctools. The
minimum requirements for compiling Wine are clang 3.8 with the
MacOSX10.10.sdk and mingw-w64 v8. The MacOSX10.14.sdk and later can
only build wine64.
MacOSX10.13.sdk and mingw-w64 v12 for 32-bit wine. The
MacOSX10.14.sdk and later can build 64-bit wine.
**Supported file systems**:
Wine should run on most file systems. A few compatibility problems
......@@ -85,10 +85,10 @@ support kernel threads may be supported in the future.
**Optional support libraries**:
Configure will display notices when optional libraries are not found
on your system. See https://wiki.winehq.org/Recommended_Packages for
hints about the packages you should install. On 64-bit platforms,
you have to make sure to install the 32-bit versions of these
libraries.
on your system. See https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine
for hints about the packages you should install. On 64-bit
platforms, you have to make sure to install the 32-bit versions of
these libraries.
## COMPILATION
......@@ -107,7 +107,7 @@ Windows source code under Unix.
To see compile configuration options, do `./configure --help`.
For more information, see https://wiki.winehq.org/Building_Wine
For more information, see https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine
## SETUP
......@@ -153,15 +153,16 @@ a bug.
https://www.winehq.org/ : various Wine Guides, application database,
bug tracking. This is probably the best starting point.
- **FAQ**: The Wine FAQ is located at https://www.winehq.org/FAQ
- **FAQ**: The Wine FAQ is located at https://gitlab.winehq.org/wine/wine/-/wikis/FAQ
- **Wiki**: The Wine Wiki is located at https://wiki.winehq.org
- **Wiki**: The Wine Wiki is located at https://gitlab.winehq.org/wine/wine/-/wikis/
- **Gitlab**: Wine development is hosted at https://gitlab.winehq.org
- **Mailing lists**:
There are several mailing lists for Wine users and developers;
see https://www.winehq.org/forums for more information.
There are several mailing lists for Wine users and developers; see
https://gitlab.winehq.org/wine/wine/-/wikis/Forums for more
information.
- **Bugs**: Report bugs to Wine Bugzilla at https://bugs.winehq.org
Please search the bugzilla database to check whether your
......
Wine version 9.8
Wine version 10.4
......@@ -35,22 +35,6 @@ AS_VAR_IF([ac_cv_prog_$1],[],
AC_CHECK_PROG([$1],[$2],[$2],[$3],[$4])])],
[AS_VAR_COPY([$1],[ac_cv_prog_$1])])])
dnl WINE_HEADER_MAJOR()
dnl
dnl Same as AC_HEADER_MAJOR but fixed to handle the glibc 2.25 sys/types.h breakage
dnl
AC_DEFUN([WINE_HEADER_MAJOR],
[AC_CHECK_HEADER(sys/mkdev.h,
[AC_DEFINE(MAJOR_IN_MKDEV, 1,
[Define to 1 if `major', `minor', and `makedev' are
declared in <mkdev.h>.])])
if test $ac_cv_header_sys_mkdev_h = no; then
AC_CHECK_HEADER(sys/sysmacros.h,
[AC_DEFINE(MAJOR_IN_SYSMACROS, 1,
[Define to 1 if `major', `minor', and `makedev'
are declared in <sysmacros.h>.])])
fi])
dnl **** Initialize the programs used by other checks ****
dnl
dnl Usage: WINE_PATH_SONAME_TOOLS
......@@ -165,14 +149,16 @@ dnl
AC_DEFUN([WINE_EXTLIB_FLAGS],
[AS_VAR_PUSHDEF([ac_cflags],[[$1]_PE_CFLAGS])dnl
AS_VAR_PUSHDEF([ac_libs],[[$1]_PE_LIBS])dnl
AS_VAR_PUSHDEF([ac_enable],[enable_[$2]])dnl
AC_ARG_VAR(ac_cflags, [C compiler flags for the PE $2, overriding the bundled version])dnl
AC_ARG_VAR(ac_libs, [Linker flags for the PE $2, overriding the bundled version])dnl
AS_VAR_IF([ac_libs],[],
[ac_libs=$3
AS_VAR_IF([ac_cflags],[],[ac_cflags=$4],[enable_$2=no])],
[enable_$2=no])
AS_VAR_IF([ac_cflags],[],[ac_cflags=$4],[ac_enable=no])],
[ac_enable=no])
AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 cflags: $ac_cflags"]) >&AS_MESSAGE_LOG_FD
AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 libs: $ac_libs"]) >&AS_MESSAGE_LOG_FD
AS_VAR_POPDEF([ac_enable])dnl
AS_VAR_POPDEF([ac_libs])dnl
AS_VAR_POPDEF([ac_cflags])])dnl
......@@ -214,6 +200,10 @@ ac_wine_try_cflags_saved_exeext=$ac_exeext
CFLAGS="$CFLAGS -nostdlib -nodefaultlibs $1"
ac_exeext=".exe"
AC_LINK_IFELSE([AC_LANG_SOURCE([[void *__os_arm64x_dispatch_ret = 0;
const unsigned int _load_config_used[0x50] = { sizeof(_load_config_used) };
#if defined(__clang_major__) && defined(MIN_CLANG_VERSION) && __clang_major__ < MIN_CLANG_VERSION
#error Too old clang version
#endif
int __cdecl mainCRTStartup(void) { return 0; }]])],
[AS_VAR_SET(ac_var,yes)], [AS_VAR_SET(ac_var,no)])
CFLAGS=$ac_wine_try_cflags_saved
......@@ -266,13 +256,10 @@ dnl
AC_DEFUN([WINE_CHECK_DEFINE],
[AS_VAR_PUSHDEF([ac_var],[ac_cv_cpp_def_$1])dnl
AC_CACHE_CHECK([whether we need to define $1],ac_var,
AC_EGREP_CPP(yes,[#ifndef $1
yes
#endif],
[AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)]))
AS_VAR_IF([ac_var],[yes],
[CFLAGS="$CFLAGS -D$1"
LINTFLAGS="$LINTFLAGS -D$1"])dnl
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#ifdef $1
#error no
#endif])],[AS_VAR_SET([ac_var],[yes])],[AS_VAR_SET([ac_var],[no])]))
AS_VAR_IF([ac_var],[yes],[EXTRACFLAGS="$EXTRACFLAGS -D$1"])dnl
AS_VAR_POPDEF([ac_var])])
dnl **** Check for functions with some extra libraries ****
......@@ -290,7 +277,8 @@ dnl
dnl Usage: AC_REQUIRE([WINE_CONFIG_HELPERS])
dnl
AC_DEFUN([WINE_CONFIG_HELPERS],
[AS_VAR_SET([wine_rules],["all:"])
[AS_VAR_SET([wine_rules],["all:
@echo 'Wine build complete.'"])
AC_SUBST(SUBDIRS,"")
AC_SUBST(DISABLED_SUBDIRS,"")
AC_SUBST(CONFIGURE_TARGETS,"")
......@@ -317,15 +305,6 @@ wine_fn_config_makefile ()
programs/*,*\ arm64ec\ *) AS_VAR_APPEND([arm64ec_DISABLED_SUBDIRS],[" $[1]"]) ;;
esac ;;
esac
}
wine_fn_config_symlink ()
{
ac_links=$[@]
AS_VAR_APPEND([wine_rules],["
$ac_links:
@./config.status \$[@]"])
for f in $ac_links; do AS_VAR_APPEND([CONFIGURE_TARGETS],[" $f"]); done
}])
dnl **** Define helper function to append a rule to a makefile command list ****
......@@ -335,17 +314,6 @@ dnl
AC_DEFUN([WINE_APPEND_RULE],[AC_REQUIRE([WINE_CONFIG_HELPERS])AS_VAR_APPEND([wine_rules],["
$1"])])
dnl **** Create symlinks from config.status ****
dnl
dnl Usage: WINE_CONFIG_SYMLINK(target,src,enable)
dnl
AC_DEFUN([WINE_CONFIG_SYMLINK],[AC_REQUIRE([WINE_CONFIG_HELPERS])dnl
m4_ifval([$3],[if test $3; then
])AC_CONFIG_LINKS([$1:$2])dnl
wine_fn_config_symlink[ $1]m4_ifval([$3],[
fi])[]dnl
])])
dnl **** Create a makefile from config.status ****
dnl
dnl Usage: WINE_CONFIG_MAKEFILE(file,enable,condition)
......
This diff is collapsed.
This diff is collapsed.
@ stub ??0CLexer@@QAE@XZ
@ stub ??1CLexer@@QAE@XZ
@ stub -arch=arm ??0CLexer@@QAA@XZ
@ stub -arch=i386 ??0CLexer@@QAE@XZ
@ stub -arch=win64 ??0CLexer@@QEAA@XZ
@ stub -arch=arm ??1CLexer@@QAA@XZ
@ stub -arch=i386 ??1CLexer@@QAE@XZ
@ stub -arch=win64 ??1CLexer@@QEAA@XZ
@ stub ADSIPrint
@ stub ADsAbandonSearch
@ stub ADsCloseSearchHandle
......@@ -53,11 +57,15 @@
@ stub GetDisplayName
@ stub GetDomainDNSNameForDomain
@ stub GetLDAPTypeName
@ stub ?GetNextToken@CLexer@@QAEJPAGPAK@Z
@ stub -arch=arm ?GetNextToken@CLexer@@QAAJPAGPAK@Z
@ stub -arch=i386 ?GetNextToken@CLexer@@QAEJPAGPAK@Z
@ stub -arch=win64 ?GetNextToken@CLexer@@QEAAJPEAGPEAK@Z
@ stub GetServerAndPort
@ stub GetSyntaxOfAttribute
@ stub InitObjectInfo
@ stub ?InitializePath@CLexer@@QAEJPAG@Z
@ stub -arch=arm ?InitializePath@CLexer@@QAAJPAG@Z
@ stub -arch=i386 ?InitializePath@CLexer@@QAEJPAG@Z
@ stub -arch=win64 ?InitializePath@CLexer@@QEAAJPEAG@Z
@ stub IsGCNamespace
@ stub LdapAddExtS
@ stub LdapAddS
......@@ -136,9 +144,15 @@
@ stub SchemaGetSyntaxOfAttribute
@ stub SchemaIsClassAContainer
@ stub SchemaOpen
@ stub ?SetAtDisabler@CLexer@@QAEXH@Z
@ stub ?SetExclaimnationDisabler@CLexer@@QAEXH@Z
@ stub ?SetFSlashDisabler@CLexer@@QAEXH@Z
@ stub -arch=arm ?SetAtDisabler@CLexer@@QAAXH@Z
@ stub -arch=i386 ?SetAtDisabler@CLexer@@QAEXH@Z
@ stub -arch=win64 ?SetAtDisabler@CLexer@@QEAAXH@Z
@ stub -arch=arm ?SetExclaimnationDisabler@CLexer@@QAAXH@Z
@ stub -arch=i386 ?SetExclaimnationDisabler@CLexer@@QAEXH@Z
@ stub -arch=win64 ?SetExclaimnationDisabler@CLexer@@QEAAXH@Z
@ stub -arch=arm ?SetFSlashDisabler@CLexer@@QAAXH@Z
@ stub -arch=i386 ?SetFSlashDisabler@CLexer@@QAEXH@Z
@ stub -arch=win64 ?SetFSlashDisabler@CLexer@@QEAAXH@Z
@ stub SortAndRemoveDuplicateOIDs
@ stub UnMarshallLDAPToLDAPSynID
@ stub intcmp
......
EXTRADEFS = -D_ADVAPI32_
MODULE = advapi32.dll
IMPORTLIB = advapi32
IMPORTS = kernelbase sechost msvcrt
DELAYIMPORTS = rpcrt4 user32
IMPORTS = kernelbase sechost msvcrt cryptsp
DELAYIMPORTS = rpcrt4 user32 userenv
SOURCES = \
advapi.c \
cred.c \
crypt.c \
crypt_arc4.c \
crypt_des.c \
crypt_lmhash.c \
eventlog.c \
lsa.c \
registry.c \
......
......@@ -777,44 +777,44 @@
@ stdcall StopTraceA(int64 str ptr)
@ stdcall -import StopTraceW(int64 wstr ptr)
@ stdcall SynchronizeWindows31FilesAndWindowsNTRegistry(long long long long)
@ stdcall SystemFunction001(ptr ptr ptr)
@ stdcall SystemFunction002(ptr ptr ptr)
@ stdcall SystemFunction003(ptr ptr)
@ stdcall SystemFunction004(ptr ptr ptr)
@ stdcall SystemFunction005(ptr ptr ptr)
@ stdcall SystemFunction006(ptr ptr)
@ stdcall SystemFunction007(ptr ptr)
@ stdcall SystemFunction008(ptr ptr ptr)
@ stdcall SystemFunction009(ptr ptr ptr)
@ stdcall SystemFunction010(ptr ptr ptr)
@ stdcall SystemFunction011(ptr ptr ptr) SystemFunction010
@ stdcall SystemFunction012(ptr ptr ptr)
@ stdcall SystemFunction013(ptr ptr ptr)
@ stdcall SystemFunction014(ptr ptr ptr) SystemFunction012
@ stdcall SystemFunction015(ptr ptr ptr) SystemFunction013
@ stdcall SystemFunction016(ptr ptr ptr) SystemFunction012
@ stdcall SystemFunction017(ptr ptr ptr) SystemFunction013
@ stdcall SystemFunction018(ptr ptr ptr) SystemFunction012
@ stdcall SystemFunction019(ptr ptr ptr) SystemFunction013
@ stdcall SystemFunction020(ptr ptr ptr) SystemFunction012
@ stdcall SystemFunction021(ptr ptr ptr) SystemFunction013
@ stdcall SystemFunction022(ptr ptr ptr) SystemFunction012
@ stdcall SystemFunction023(ptr ptr ptr) SystemFunction013
@ stdcall SystemFunction024(ptr ptr ptr)
@ stdcall SystemFunction025(ptr ptr ptr)
@ stdcall SystemFunction026(ptr ptr ptr) SystemFunction024
@ stdcall SystemFunction027(ptr ptr ptr) SystemFunction025
@ stdcall SystemFunction001(ptr ptr ptr) cryptbase.SystemFunction001
@ stdcall SystemFunction002(ptr ptr ptr) cryptbase.SystemFunction002
@ stdcall SystemFunction003(ptr ptr) cryptbase.SystemFunction003
@ stdcall SystemFunction004(ptr ptr ptr) cryptbase.SystemFunction004
@ stdcall SystemFunction005(ptr ptr ptr) cryptbase.SystemFunction005
@ stdcall SystemFunction006(ptr ptr) cryptsp.SystemFunction006
@ stdcall SystemFunction007(ptr ptr) cryptsp.SystemFunction007
@ stdcall SystemFunction008(ptr ptr ptr) cryptsp.SystemFunction008
@ stdcall SystemFunction009(ptr ptr ptr) cryptsp.SystemFunction009
@ stdcall SystemFunction010(ptr ptr ptr) cryptsp.SystemFunction010
@ stdcall SystemFunction011(ptr ptr ptr) cryptsp.SystemFunction011
@ stdcall SystemFunction012(ptr ptr ptr) cryptsp.SystemFunction012
@ stdcall SystemFunction013(ptr ptr ptr) cryptsp.SystemFunction013
@ stdcall SystemFunction014(ptr ptr ptr) cryptsp.SystemFunction014
@ stdcall SystemFunction015(ptr ptr ptr) cryptsp.SystemFunction015
@ stdcall SystemFunction016(ptr ptr ptr) cryptsp.SystemFunction016
@ stdcall -import SystemFunction017(ptr ptr ptr) SystemFunction013
@ stdcall SystemFunction018(ptr ptr ptr) cryptsp.SystemFunction018
@ stdcall -import SystemFunction019(ptr ptr ptr) SystemFunction013
@ stdcall SystemFunction020(ptr ptr ptr) cryptsp.SystemFunction020
@ stdcall SystemFunction021(ptr ptr ptr) cryptsp.SystemFunction021
@ stdcall SystemFunction022(ptr ptr ptr) cryptsp.SystemFunction022
@ stdcall SystemFunction023(ptr ptr ptr) cryptsp.SystemFunction023
@ stdcall SystemFunction024(ptr ptr ptr) cryptsp.SystemFunction024
@ stdcall SystemFunction025(ptr ptr ptr) cryptsp.SystemFunction025
@ stdcall SystemFunction026(ptr ptr ptr) cryptsp.SystemFunction026
@ stdcall SystemFunction027(ptr ptr ptr) cryptsp.SystemFunction027
@ stub SystemFunction028
@ stub SystemFunction029
@ stdcall SystemFunction030(ptr ptr)
@ stdcall SystemFunction031(ptr ptr) SystemFunction030
@ stdcall SystemFunction032(ptr ptr)
@ stdcall SystemFunction030(ptr ptr) cryptsp.SystemFunction030
@ stdcall SystemFunction031(ptr ptr) cryptsp.SystemFunction031
@ stdcall SystemFunction032(ptr ptr) cryptsp.SystemFunction032
@ stub SystemFunction033
@ stub SystemFunction034
@ stdcall SystemFunction035(str)
@ stdcall SystemFunction036(ptr long) # RtlGenRandom
@ stdcall SystemFunction040(ptr long long) # RtlEncryptMemory
@ stdcall SystemFunction041(ptr long long) # RtlDecryptMemory
@ stdcall SystemFunction035(str) cryptsp.SystemFunction035
@ stdcall SystemFunction036(ptr long) cryptbase.SystemFunction036
@ stdcall SystemFunction040(ptr long long) cryptbase.SystemFunction040
@ stdcall SystemFunction041(ptr long long) cryptbase.SystemFunction041
@ stdcall TraceEvent(int64 ptr) ntdll.EtwLogTraceEvent
@ stub TraceEventInstance
@ varargs TraceMessage(int64 long ptr long) ntdll.EtwTraceMessage
......
......@@ -42,17 +42,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(crypt);
typedef struct tagMD4_CTX {
unsigned int buf[4];
unsigned int i[2];
unsigned char in[64];
unsigned char digest[16];
} MD4_CTX;
void WINAPI MD4Init(MD4_CTX *ctx);
void WINAPI MD4Update(MD4_CTX *ctx, const unsigned char *buf, unsigned int len);
void WINAPI MD4Final(MD4_CTX *ctx);
static HWND crypt_hWindow;
#define CRYPT_Alloc(size) (LocalAlloc(LMEM_ZEROINIT, size))
......@@ -2295,221 +2284,6 @@ DWORD WINAPI ReadEncryptedFileRaw(PFE_EXPORT_FUNC export, PVOID callback, PVOID
return ERROR_CALL_NOT_IMPLEMENTED;
}
/******************************************************************************
* SystemFunction007 [ADVAPI32.@]
*
* MD4 hash a unicode string
*
* PARAMS
* string [I] the string to hash
* output [O] the md4 hash of the string (16 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_UNSUCCESSFUL
*
*/
NTSTATUS WINAPI SystemFunction007(const UNICODE_STRING *string, LPBYTE hash)
{
MD4_CTX ctx;
MD4Init( &ctx );
MD4Update( &ctx, (const BYTE *)string->Buffer, string->Length );
MD4Final( &ctx );
memcpy( hash, ctx.digest, 0x10 );
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction010 [ADVAPI32.@]
* SystemFunction011 [ADVAPI32.@]
*
* MD4 hashes 16 bytes of data
*
* PARAMS
* unknown [] seems to have no effect on the output
* data [I] pointer to data to hash (16 bytes)
* output [O] the md4 hash of the data (16 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_UNSUCCESSFUL
*
*/
NTSTATUS WINAPI SystemFunction010(LPVOID unknown, const BYTE *data, LPBYTE hash)
{
MD4_CTX ctx;
MD4Init( &ctx );
MD4Update( &ctx, data, 0x10 );
MD4Final( &ctx );
memcpy( hash, ctx.digest, 0x10 );
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction030 (ADVAPI32.@)
*
* Tests if two blocks of 16 bytes are equal
*
* PARAMS
* b1,b2 [I] block of 16 bytes
*
* RETURNS
* TRUE if blocks are the same
* FALSE if blocks are different
*/
BOOL WINAPI SystemFunction030(LPCVOID b1, LPCVOID b2)
{
return !memcmp(b1, b2, 0x10);
}
/******************************************************************************
* SystemFunction035 (ADVAPI32.@)
*
* Described here:
http://disc.server.com/discussion.cgi?disc=148775;article=942;title=Coding%2FASM%2FSystem
*
* NOTES
* Stub, always return TRUE.
*/
BOOL WINAPI SystemFunction035(LPCSTR lpszDllFilePath)
{
FIXME("%s: stub\n", debugstr_a(lpszDllFilePath));
return TRUE;
}
static CRITICAL_SECTION random_cs;
static CRITICAL_SECTION_DEBUG random_debug =
{
0, 0, &random_cs,
{ &random_debug.ProcessLocksList, &random_debug.ProcessLocksList },
0, 0, { (DWORD_PTR)(__FILE__ ": random_cs") }
};
static CRITICAL_SECTION random_cs = { &random_debug, -1, 0, 0, 0, 0 };
#define MAX_CPUS 256
static char random_buf[sizeof(SYSTEM_INTERRUPT_INFORMATION) * MAX_CPUS];
static ULONG random_len;
static ULONG random_pos;
/* FIXME: assumes interrupt information provides sufficient randomness */
static BOOL fill_random_buffer(void)
{
ULONG len = sizeof(SYSTEM_INTERRUPT_INFORMATION) * min( NtCurrentTeb()->Peb->NumberOfProcessors, MAX_CPUS );
NTSTATUS status;
if ((status = NtQuerySystemInformation( SystemInterruptInformation, random_buf, len, NULL )))
{
WARN( "failed to get random bytes %08lx\n", status );
return FALSE;
}
random_len = len;
random_pos = 0;
return TRUE;
}
/******************************************************************************
* SystemFunction036 (ADVAPI32.@)
*
* MSDN documents this function as RtlGenRandom and declares it in ntsecapi.h
*
* PARAMS
* pbBuffer [O] Pointer to memory to receive random bytes.
* dwLen [I] Number of random bytes to fetch.
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*/
BOOLEAN WINAPI SystemFunction036( void *buffer, ULONG len )
{
char *ptr = buffer;
EnterCriticalSection( &random_cs );
while (len)
{
ULONG size;
if (random_pos >= random_len && !fill_random_buffer())
{
SetLastError( NTE_FAIL );
LeaveCriticalSection( &random_cs );
return FALSE;
}
size = min( len, random_len - random_pos );
memcpy( ptr, random_buf + random_pos, size );
random_pos += size;
ptr += size;
len -= size;
}
LeaveCriticalSection( &random_cs );
return TRUE;
}
/*
These functions have nearly identical prototypes to CryptProtectMemory and CryptUnprotectMemory,
in crypt32.dll.
*/
/******************************************************************************
* SystemFunction040 (ADVAPI32.@)
*
* MSDN documents this function as RtlEncryptMemory and declares it in ntsecapi.h.
*
* PARAMS
* memory [I/O] Pointer to memory to encrypt.
* length [I] Length of region to encrypt in bytes.
* flags [I] Control whether other processes are able to decrypt the memory.
* RTL_ENCRYPT_OPTION_SAME_PROCESS
* RTL_ENCRYPT_OPTION_CROSS_PROCESS
* RTL_ENCRYPT_OPTION_SAME_LOGON
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: NTSTATUS error code
*
* NOTES
* length must be a multiple of RTL_ENCRYPT_MEMORY_SIZE.
* If flags are specified when encrypting, the same flag value must be given
* when decrypting the memory.
*/
NTSTATUS WINAPI SystemFunction040(PVOID memory, ULONG length, ULONG flags)
{
FIXME("(%p, %lx, %lx): stub [RtlEncryptMemory]\n", memory, length, flags);
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction041 (ADVAPI32.@)
*
* MSDN documents this function as RtlDecryptMemory and declares it in ntsecapi.h.
*
* PARAMS
* memory [I/O] Pointer to memory to decrypt.
* length [I] Length of region to decrypt in bytes.
* flags [I] Control whether other processes are able to decrypt the memory.
* RTL_ENCRYPT_OPTION_SAME_PROCESS
* RTL_ENCRYPT_OPTION_CROSS_PROCESS
* RTL_ENCRYPT_OPTION_SAME_LOGON
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: NTSTATUS error code
*
* NOTES
* length must be a multiple of RTL_ENCRYPT_MEMORY_SIZE.
* If flags are specified when encrypting, the same flag value must be given
* when decrypting the memory.
*/
NTSTATUS WINAPI SystemFunction041(PVOID memory, ULONG length, ULONG flags)
{
FIXME("(%p, %lx, %lx): stub [RtlDecryptMemory]\n", memory, length, flags);
return STATUS_SUCCESS;
}
/******************************************************************************
* WriteEncryptedFileRaw (ADVAPI32.@)
*
......
......@@ -86,11 +86,6 @@ typedef struct tagCRYPTHASH
#define MAXPROVTYPES 999
extern unsigned char *CRYPT_DEShash( unsigned char *dst, const unsigned char *key,
const unsigned char *src );
extern unsigned char *CRYPT_DESunhash( unsigned char *dst, const unsigned char *key,
const unsigned char *src );
struct ustring {
DWORD Length;
DWORD MaximumLength;
......
/*
* Copyright 2004 Hans Leidekker
*
* Based on LMHash.c from libcifs
*
* Copyright (C) 2004 by Christopher R. Hertel
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <stdarg.h>
#include "ntstatus.h"
#define WIN32_NO_STATUS
#include "windef.h"
#include "winternl.h"
#include "crypt.h"
static const unsigned char CRYPT_LMhash_Magic[8] =
{ 'K', 'G', 'S', '!', '@', '#', '$', '%' };
static void CRYPT_LMhash( unsigned char *dst, const unsigned char *pwd, const int len )
{
int i, max = 14;
unsigned char tmp_pwd[14] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
max = len > max ? max : len;
for (i = 0; i < max; i++)
tmp_pwd[i] = pwd[i];
CRYPT_DEShash( dst, tmp_pwd, CRYPT_LMhash_Magic );
CRYPT_DEShash( &dst[8], &tmp_pwd[7], CRYPT_LMhash_Magic );
}
NTSTATUS WINAPI SystemFunction006( LPCSTR password, LPSTR hash )
{
CRYPT_LMhash( (unsigned char*)hash, (const unsigned char*)password, strlen(password) );
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction008 [ADVAPI32.@]
*
* Creates a LM response from a challenge and a password hash
*
* PARAMS
* challenge [I] Challenge from authentication server
* hash [I] NTLM hash (from SystemFunction006)
* response [O] response to send back to the server
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_UNSUCCESSFUL
*
* NOTES
* see http://davenport.sourceforge.net/ntlm.html#theLmResponse
*
*/
NTSTATUS WINAPI SystemFunction008(const BYTE *challenge, const BYTE *hash, LPBYTE response)
{
BYTE key[7*3];
if (!challenge || !response)
return STATUS_UNSUCCESSFUL;
memset(key, 0, sizeof key);
memcpy(key, hash, 0x10);
CRYPT_DEShash(response, key, challenge);
CRYPT_DEShash(response+8, key+7, challenge);
CRYPT_DEShash(response+16, key+14, challenge);
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction009 [ADVAPI32.@]
*
* Seems to do the same as SystemFunction008 ...
*/
NTSTATUS WINAPI SystemFunction009(const BYTE *challenge, const BYTE *hash, LPBYTE response)
{
return SystemFunction008(challenge, hash, response);
}
/******************************************************************************
* SystemFunction001 [ADVAPI32.@]
*
* Encrypts a single block of data using DES
*
* PARAMS
* data [I] data to encrypt (8 bytes)
* key [I] key data (7 bytes)
* output [O] the encrypted data (8 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_UNSUCCESSFUL
*
*/
NTSTATUS WINAPI SystemFunction001(const BYTE *data, const BYTE *key, LPBYTE output)
{
if (!data || !output)
return STATUS_UNSUCCESSFUL;
CRYPT_DEShash(output, key, data);
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction002 [ADVAPI32.@]
*
* Decrypts a single block of data using DES
*
* PARAMS
* data [I] data to decrypt (8 bytes)
* key [I] key data (7 bytes)
* output [O] the decrypted data (8 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_UNSUCCESSFUL
*
*/
NTSTATUS WINAPI SystemFunction002(const BYTE *data, const BYTE *key, LPBYTE output)
{
if (!data || !output)
return STATUS_UNSUCCESSFUL;
CRYPT_DESunhash(output, key, data);
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction003 [ADVAPI32.@]
*
* Hashes a key using DES and a fixed datablock
*
* PARAMS
* key [I] key data (7 bytes)
* output [O] hashed key (8 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_UNSUCCESSFUL
*
*/
NTSTATUS WINAPI SystemFunction003(const BYTE *key, LPBYTE output)
{
if (!output)
return STATUS_UNSUCCESSFUL;
CRYPT_DEShash(output, key, CRYPT_LMhash_Magic);
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction004 [ADVAPI32.@]
*
* Encrypts a block of data with DES in ECB mode, preserving the length
*
* PARAMS
* data [I] data to encrypt
* key [I] key data (up to 7 bytes)
* output [O] buffer to receive encrypted data
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_BUFFER_TOO_SMALL if the output buffer is too small
* Failure: STATUS_INVALID_PARAMETER_2 if the key is zero length
*
* NOTES
* Encrypt buffer size should be input size rounded up to 8 bytes
* plus an extra 8 bytes.
*/
NTSTATUS WINAPI SystemFunction004(const struct ustring *in,
const struct ustring *key,
struct ustring *out)
{
union {
unsigned char uc[8];
unsigned int ui[2];
} data;
unsigned char deskey[7];
unsigned int crypt_len, ofs;
if (key->Length<=0)
return STATUS_INVALID_PARAMETER_2;
crypt_len = ((in->Length+7)&~7);
if (out->MaximumLength < (crypt_len+8))
return STATUS_BUFFER_TOO_SMALL;
data.ui[0] = in->Length;
data.ui[1] = 1;
if (key->Length<sizeof deskey)
{
memset(deskey, 0, sizeof deskey);
memcpy(deskey, key->Buffer, key->Length);
}
else
memcpy(deskey, key->Buffer, sizeof deskey);
CRYPT_DEShash(out->Buffer, deskey, data.uc);
for(ofs=0; ofs<(crypt_len-8); ofs+=8)
CRYPT_DEShash(out->Buffer+8+ofs, deskey, in->Buffer+ofs);
memset(data.uc, 0, sizeof data.uc);
memcpy(data.uc, in->Buffer+ofs, in->Length +8-crypt_len);
CRYPT_DEShash(out->Buffer+8+ofs, deskey, data.uc);
out->Length = crypt_len+8;
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction005 [ADVAPI32.@]
*
* Decrypts a block of data with DES in ECB mode
*
* PARAMS
* data [I] data to decrypt
* key [I] key data (up to 7 bytes)
* output [O] buffer to receive decrypted data
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_BUFFER_TOO_SMALL if the output buffer is too small
* Failure: STATUS_INVALID_PARAMETER_2 if the key is zero length
*
*/
NTSTATUS WINAPI SystemFunction005(const struct ustring *in,
const struct ustring *key,
struct ustring *out)
{
union {
unsigned char uc[8];
unsigned int ui[2];
} data;
unsigned char deskey[7];
unsigned int ofs, crypt_len;
if (key->Length<=0)
return STATUS_INVALID_PARAMETER_2;
if (key->Length<sizeof deskey)
{
memset(deskey, 0, sizeof deskey);
memcpy(deskey, key->Buffer, key->Length);
}
else
memcpy(deskey, key->Buffer, sizeof deskey);
CRYPT_DESunhash(data.uc, deskey, in->Buffer);
if (data.ui[1] != 1)
return STATUS_UNKNOWN_REVISION;
crypt_len = data.ui[0];
if (crypt_len > out->MaximumLength)
return STATUS_BUFFER_TOO_SMALL;
for (ofs=0; (ofs+8)<crypt_len; ofs+=8)
CRYPT_DESunhash(out->Buffer+ofs, deskey, in->Buffer+ofs+8);
if (ofs<crypt_len)
{
CRYPT_DESunhash(data.uc, deskey, in->Buffer+ofs+8);
memcpy(out->Buffer+ofs, data.uc, crypt_len-ofs);
}
out->Length = crypt_len;
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction012 [ADVAPI32.@]
* SystemFunction014 [ADVAPI32.@]
* SystemFunction016 [ADVAPI32.@]
* SystemFunction018 [ADVAPI32.@]
* SystemFunction020 [ADVAPI32.@]
* SystemFunction022 [ADVAPI32.@]
*
* Encrypts two DES blocks with two keys
*
* PARAMS
* data [I] data to encrypt (16 bytes)
* key [I] key data (two lots of 7 bytes)
* output [O] buffer to receive encrypted data (16 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_UNSUCCESSFUL if the input or output buffer is NULL
*/
NTSTATUS WINAPI SystemFunction012(const BYTE *in, const BYTE *key, LPBYTE out)
{
if (!in || !out)
return STATUS_UNSUCCESSFUL;
CRYPT_DEShash(out, key, in);
CRYPT_DEShash(out+8, key+7, in+8);
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction013 [ADVAPI32.@]
* SystemFunction015 [ADVAPI32.@]
* SystemFunction017 [ADVAPI32.@]
* SystemFunction019 [ADVAPI32.@]
* SystemFunction021 [ADVAPI32.@]
* SystemFunction023 [ADVAPI32.@]
*
* Decrypts two DES blocks with two keys
*
* PARAMS
* data [I] data to decrypt (16 bytes)
* key [I] key data (two lots of 7 bytes)
* output [O] buffer to receive decrypted data (16 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
* Failure: STATUS_UNSUCCESSFUL if the input or output buffer is NULL
*/
NTSTATUS WINAPI SystemFunction013(const BYTE *in, const BYTE *key, LPBYTE out)
{
if (!in || !out)
return STATUS_UNSUCCESSFUL;
CRYPT_DESunhash(out, key, in);
CRYPT_DESunhash(out+8, key+7, in+8);
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction024 [ADVAPI32.@]
*
* Encrypts two DES blocks with a 32 bit key...
*
* PARAMS
* data [I] data to encrypt (16 bytes)
* key [I] key data (4 bytes)
* output [O] buffer to receive encrypted data (16 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
*/
NTSTATUS WINAPI SystemFunction024(const BYTE *in, const BYTE *key, LPBYTE out)
{
BYTE deskey[0x10];
memcpy(deskey, key, 4);
memcpy(deskey+4, key, 4);
memcpy(deskey+8, key, 4);
memcpy(deskey+12, key, 4);
CRYPT_DEShash(out, deskey, in);
CRYPT_DEShash(out+8, deskey+7, in+8);
return STATUS_SUCCESS;
}
/******************************************************************************
* SystemFunction025 [ADVAPI32.@]
*
* Decrypts two DES blocks with a 32 bit key...
*
* PARAMS
* data [I] data to encrypt (16 bytes)
* key [I] key data (4 bytes)
* output [O] buffer to receive encrypted data (16 bytes)
*
* RETURNS
* Success: STATUS_SUCCESS
*/
NTSTATUS WINAPI SystemFunction025(const BYTE *in, const BYTE *key, LPBYTE out)
{
BYTE deskey[0x10];
memcpy(deskey, key, 4);
memcpy(deskey+4, key, 4);
memcpy(deskey+8, key, 4);
memcpy(deskey+12, key, 4);
CRYPT_DESunhash(out, deskey, in);
CRYPT_DESunhash(out+8, deskey+7, in+8);
return STATUS_SUCCESS;
}
......@@ -39,6 +39,7 @@
#include "iads.h"
#include "advapi32_misc.h"
#include "lmcons.h"
#include "userenv.h"
#include "wine/debug.h"
......@@ -1209,7 +1210,7 @@ static void split_domain_account( const LSA_UNICODE_STRING *str, LSA_UNICODE_STR
while (p > str->Buffer && *p != '\\') p--;
if (*p == '\\')
if (p >= str->Buffer && *p == '\\')
{
domain->Buffer = str->Buffer;
domain->Length = (p - str->Buffer) * sizeof(WCHAR);
......@@ -2671,20 +2672,47 @@ BOOL WINAPI ConvertSidToStringSidA(PSID pSid, LPSTR *pstr)
}
/******************************************************************************
* CreateProcessWithLogonW
* CreateProcessWithLogonW [ADVAPI32.@]
*/
BOOL WINAPI CreateProcessWithLogonW( LPCWSTR lpUsername, LPCWSTR lpDomain, LPCWSTR lpPassword, DWORD dwLogonFlags,
LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment,
LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation )
BOOL WINAPI CreateProcessWithLogonW( LPCWSTR user_name, LPCWSTR domain, LPCWSTR password,
DWORD logon_flags, LPCWSTR application_name, LPWSTR command_line,
DWORD creation_flags, void *environment, LPCWSTR current_directory,
STARTUPINFOW *startup_info, PROCESS_INFORMATION *process_information )
{
FIXME("%s %s %s 0x%08lx %s %s 0x%08lx %p %s %p %p stub\n", debugstr_w(lpUsername), debugstr_w(lpDomain),
debugstr_w(lpPassword), dwLogonFlags, debugstr_w(lpApplicationName),
debugstr_w(lpCommandLine), dwCreationFlags, lpEnvironment, debugstr_w(lpCurrentDirectory),
lpStartupInfo, lpProcessInformation);
HANDLE token;
FIXME("%s %s %p 0x%08lx %s %s 0x%08lx %p %s %p %p: semi-stub\n", debugstr_w(user_name), debugstr_w(domain),
password, logon_flags, debugstr_w(application_name), debugstr_w(command_line), creation_flags,
environment, debugstr_w(current_directory), startup_info, process_information);
if (LogonUserW(user_name, domain, password, 0, 0, &token))
{
void *env = environment;
BOOL ret = TRUE;
if (!environment)
{
ret = CreateEnvironmentBlock(&env, token, FALSE);
creation_flags |= CREATE_UNICODE_ENVIRONMENT;
}
if (ret)
{
ret = CreateProcessAsUserW( token, application_name, command_line, NULL, NULL, FALSE,
creation_flags, env, current_directory, startup_info, process_information );
}
if (env != environment)
DestroyEnvironmentBlock(env);
CloseHandle(token);
return ret;
}
return FALSE;
}
/******************************************************************************
* CreateProcessWithTokenW [ADVAPI32.@]
*/
BOOL WINAPI CreateProcessWithTokenW(HANDLE token, DWORD logon_flags, LPCWSTR application_name, LPWSTR command_line,
DWORD creation_flags, void *environment, LPCWSTR current_directory, STARTUPINFOW *startup_info,
PROCESS_INFORMATION *process_information )
......@@ -2695,8 +2723,8 @@ BOOL WINAPI CreateProcessWithTokenW(HANDLE token, DWORD logon_flags, LPCWSTR app
startup_info, process_information);
/* FIXME: check if handles should be inherited */
return CreateProcessW( application_name, command_line, NULL, NULL, FALSE, creation_flags, environment,
current_directory, startup_info, process_information );
return CreateProcessAsUserW( token, application_name, command_line, NULL, NULL, FALSE, creation_flags,
environment, current_directory, startup_info, process_information );
}
/******************************************************************************
......
......@@ -41,7 +41,7 @@ static BOOL (WINAPI *pCredIsMarshaledCredentialA)(LPCSTR);
#define TEST_TARGET_NAME "credtest.winehq.org"
#define TEST_TARGET_NAME2 "credtest2.winehq.org"
static const WCHAR TEST_PASSWORD[] = {'p','4','$','$','w','0','r','d','!',0};
static const WCHAR TEST_PASSWORD[] = L"p4$$w0rd!";
static void test_CredReadA(void)
{
......@@ -381,12 +381,12 @@ static void test_domain_password(DWORD cred_type)
static void test_CredMarshalCredentialA(void)
{
static WCHAR emptyW[] = {0};
static WCHAR tW[] = {'t',0};
static WCHAR teW[] = {'t','e',0};
static WCHAR tesW[] = {'t','e','s',0};
static WCHAR testW[] = {'t','e','s','t',0};
static WCHAR test1W[] = {'t','e','s','t','1',0};
static WCHAR emptyW[] = L"";
static WCHAR tW[] = L"t";
static WCHAR teW[] = L"te";
static WCHAR tesW[] = L"tes";
static WCHAR testW[] = L"test";
static WCHAR test1W[] = L"test1";
CERT_CREDENTIAL_INFO cert;
USERNAME_TARGET_CREDENTIAL_INFO username;
DWORD error;
......@@ -565,10 +565,6 @@ static void test_CredUnmarshalCredentialA(void)
{
static const UCHAR cert_empty[CERT_HASH_LENGTH] = {0};
static const UCHAR cert_wine[CERT_HASH_LENGTH] = {'W','i','n','e',0};
static const WCHAR tW[] = {'t',0};
static const WCHAR teW[] = {'t','e',0};
static const WCHAR tesW[] = {'t','e','s',0};
static const WCHAR testW[] = {'t','e','s','t',0};
void *p;
CERT_CREDENTIAL_INFO *cert;
const UCHAR *hash;
......@@ -604,22 +600,22 @@ static void test_CredUnmarshalCredentialA(void)
{ "@@CAAAAAA", UsernameTargetCredential, NULL },
{ "@@CAAAAAA0B", UsernameTargetCredential, NULL },
{ "@@CAAAAAA0BA", UsernameTargetCredential, NULL },
{ "@@CCAAAAA0BA", UsernameTargetCredential, tW },
{ "@@CCAAAAA0BA", UsernameTargetCredential, L"t" },
{ "@@CEAAAAA0BA", UsernameTargetCredential, NULL },
{ "@@CEAAAAA0BAd", UsernameTargetCredential, NULL },
{ "@@CEAAAAA0BAdA", UsernameTargetCredential, NULL },
{ "@@CEAAAAA0BQZAA", UsernameTargetCredential, teW },
{ "@@CEAAAAA0BQZAQ", UsernameTargetCredential, teW },
{ "@@CEAAAAA0BQZAg", UsernameTargetCredential, teW },
{ "@@CEAAAAA0BQZAw", UsernameTargetCredential, teW },
{ "@@CEAAAAA0BQZAA", UsernameTargetCredential, L"te" },
{ "@@CEAAAAA0BQZAQ", UsernameTargetCredential, L"te" },
{ "@@CEAAAAA0BQZAg", UsernameTargetCredential, L"te" },
{ "@@CEAAAAA0BQZAw", UsernameTargetCredential, L"te" },
{ "@@CEAAAAA0BQZAAA", UsernameTargetCredential, NULL },
{ "@@CGAAAAA0BQZAMH", UsernameTargetCredential, NULL },
{ "@@CGAAAAA0BQZAMHA", UsernameTargetCredential, tesW },
{ "@@CGAAAAA0BQZAMHA", UsernameTargetCredential, L"tes" },
{ "@@CGAAAAA0BQZAMHAA", UsernameTargetCredential, NULL },
{ "@@CCAAAAA0BAA", UsernameTargetCredential, NULL },
{ "@@CBAAAAA0BAA", UsernameTargetCredential, NULL },
{ "@@CAgAAAA0BAA", UsernameTargetCredential, NULL },
{ "@@CIAAAAA0BQZAMHA0BA", UsernameTargetCredential, testW },
{ "@@CIAAAAA0BQZAMHA0BA", UsernameTargetCredential, L"test" },
{ "@@CA-----0BQZAMHA0BA", UsernameTargetCredential, NULL },
};
......
......@@ -315,6 +315,14 @@ static void test_incorrect_api_usage(void)
result = CryptGenKey(0, CALG_RC4, 0, &hKey);
ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%ld\n", GetLastError());
dwLen = 0;
SetLastError(0xdeadbeef);
result = CryptDecrypt(hKey, 0, FALSE, 0, &temp, &dwLen);
ok (result, "%lx\n", GetLastError());
dwLen = 0;
SetLastError(0xdeadbeef);
result = CryptDecrypt(hKey, 0, TRUE, 0, &temp, &dwLen);
ok (!result && GetLastError() == NTE_BAD_LEN, "%lx\n", GetLastError());
dwLen = 1;
result = CryptDecrypt(hKey, 0, TRUE, 0, &temp, &dwLen);
ok (result, "%ld\n", GetLastError());
......